Map->Check for Problems (Alt-P) can be used to see if there are any incorrect keyvalues or input/output fields on map entities. Most of the "unused 'angles'" errors can be safely ignored, but occasionally an entity gets passed a bad input and it's easy to catch with this option.
Map->Entity Report... lists all the entities in the map. This is useful if you want to select and edit all the entities in a group (i.e., npc_metropolice) without having to ctrl-click each one individually in the 3D world view. This can also help you find and delete duplicate entities when only one needs to be in the map (light_environment, sky_camera, etc) or clean out one of the SDK stock example maps so that only the set and lighting remain.
Map->Load Pointfile is useful for detecting map leaks. If a dialog box with the Yes/No options comes up, then your map has a leak and a red line will be drawn showing a path from the void to an entity which is in the leak. If the leak line is difficult to find, you can use the VisGroups panel (to the side of the main window) to toggle the visibility of the world objects.
The cordon tool (the yellow and black hazard stripes in the main toolbar) can be used to select and edit a small area of the map. This is useful for when your map file has many entities which overlap in the orthographic views. In addition to making editing easier, when compiling the map only world objects inside or touching the cordon boundaries will be built into the bsp file. This is useful for testing small scenes without needing to compile a large map file. Use this in conjunction with multiple info_player_start entities (only one needs the Master flag set) to examine small set pieces.
It's often easier to make a small sandbox map (see effectslab.vmf) to test out a new effect, camera trick, or choreography. You don't break your main map if something goes wrong and compile times are much faster.
trigger_physics_trap is a brush-based entity which causes entities to dissolve as though they were hit by a combine ball (alternate fire for the ar2 weapon). Note: leave the Client flag unchecked or else the game will crash when when player touches it.
npc_vehicle_driver when paired with a prop_vehicle_* and path_corner entities will cause a vehicle to drive itself along a path. This is a little better than parenting a static/dynamic vehicle model to a func_tracktrain entity, but the AI pathing can sometimes be erratic.
env_zoom adjust the field of view for the player view. Essentially, this is a smooth camera zoom function (which I wish I had known about at the start of the semester). Default view angle is 75 degrees, less than 75 zooms in, greater than 75 zooms out and distorts the view.
script_intro is used during the G-Man speech at the beginning of Half-Life 2. It produces a cross-fade effect between the player view (or a point_viewcontrol) and a point_camera entity. It is entirely input-driven, so more detailed documentation can be found here.
logic_relay is a simple entity which only takes inputs. While it appears trivial, it can greatly help in organizing complex scene triggers and allows for greater portability. For instance, when developing a map I often link a scene or effect to a trigger_once brush. Instead of attaching outputs directly to the trigger brush, I simply trigger the logic_relay which handles all the outputs for the scene/effect/sequence. When the map is in the final phase of production, the trigger brush is removed and the relay is called directly as the scene progresses. Usually, I set up a relay so that the FireUser1 input begins the scene/effect/sequence and FireUser2 signals the end of the relay's actions which passes control to the next relay or resumes the choreographed scene. See also: logic_auto
npc_bullseye is similar to an info_target but the AI tends to be able to target/attack it much more reliably.
phys_ragdollmagnet is used for cinematic ragdoll physics. For example, you want an npc to fly backwards through a plate glass window when an explosion goes off, but he doesn't always fall the same direction on each take. Place a ragdollmagnet behind the window and enable it when the npc dies. The ragdoll will be reliably pulled toward the magnet. A larger force can sometimes produce a comical effect.
A large scene does not necessarily need to be broken up into several smaller scene files. For instance, you have characters speaking, then moving to a new location, and resuming dialogue once they get there. Rather than breaking it up into two scene files for dialogue and a scripted_sequence for movement, you can use section pauses and a "Move to Actor" event (targeted at an info_target or npc where you want him to move). This is highly more configurable than using a scripted_sequence since you can control the actor's gestures, facing, and looking direction while he moves (so he isn't an oblivious robot during travel).
One major exception with faceposer files is that a scene will immediatly terminate if any of the actors are killed during a scene (the same applies to point_viewcontrol entities which target the victim). In that case, you'll either need separate scene files -- one before and one after the npc gets killed -- or swap out the character being killed with an identical "stunt man" npc (using a scripted_sequence with instantaneous movement).
List of entities - The one stop reference for all Hammer entities.
Nem's Tools - VTFEdit, Crafty (the improved version of GCFScape), Terrain Generator
CrazyBump - Bump-map generator. Great for adding specular hilights to simulate bumpy, wet/shiny surfaces.
Interlopers.net - A decent place for getting started with Hammer for set buliding and effects, but not as good as...
Halfwit-2 - More in-depth tutorials sorted by the entitiy types they use.