The standard way:
Build the outside box, and place the monster in it. Also create a info_teleport_destination entity at the place you wish the monster to appear in the map once it teleports. Give this info_teleport_destination a targetname keyvalue, like ambush1.
Create a trigger_teleport brush entity surrounding just the monster you want to teleport from the outside box. Then give the trigger_teleport a target keyvalue with the same name as the targetname you just entered(in this example ambush1). This tells the teleporter to send whatever it teleports to the entity with the name ambush1.
Finally, give the trigger_teleport a targetname corresponding to the event you want to trigger the teleporting monster.
The only real restriction with teleports is that they will only teleport monsters and players, not grenades, ammo or items. This could be changed in triggers.qc
The neater way:
It takes three entities to get teleporting to work in this way, which is a bit wasteful. Blowing my own trumpet here, but there's a tutorial I wrote which reduces the number of entities you need and makes teleporting much easier for a mapper to set up. It can be found here:
After you make the modifications to the code in the tutorial, you can make a monster that teleports simply by placing the monster where you want it to appear, then giving it a spawnflag and the targetname of the triggering event. It's neat!