K, I ran a test and this does actually work.
Change this:
classname trigger_multiple
cnt 1
health 5
setthread pub_shotglass_1
spawnflags 144
targetname pub_shotglass_1_trigger
To this:
classname trigger_multiple
$targetname pub_shotglass_1_trigger
cnt 1
health 5
In your radiant window (for the trigger), check the box that says damage. If you fail to do so, touching the trigger with your player or AI will cause it to remove.
You should not be using setthread with this trigger if you are threading it from the script. Might be the reason for the crash. Just leave setthread off the trigger and let the script refer to the trigger's targetname.
Make sure that the glass has a $targetname of pub_shotglass_1 or the script cannot remove that entity. Also, against what I said earlier, just leave it a model. Making it a crate might be part of the problem. Sorry bout that.
In addition to the shotglass, make a brush with the texture of glass. You can get it in the common textures folder, should be all blue and say glass in white.
Give it the same targetname as your shotglass and make it about the same size as the glass. The glass will be invisible, be solid, and make a glass sound if bullets pass through them. When the trigger removes targets with the name
pub_shotglass_1, the glass texture will go with it.