I spent some time converting my blocked out scavenge map from L4D1 into a fully entity'd L4D2 scavenge map, and I must say that I'm extremely impressed with the instance system they put in. The instances system allows one massive stage to only have 1 bsp, while still supporting multiple game modes!
This works an internal file system of sorts (not actually, but it's a useful parallel).
Example:
radaka.vmf (the geometry and map layout, this is the bulk of everything--the world in which the game takes place)
and all of the other vmfs, none of which contain any world geometry except that which seals doors and blocks nav (like sealing an arena in for survival).
radaka_coop.vmf (the set of entities used in coop gameplay)
radaka_versus(or vs, i didn't check).vmf (the set of entities used for versus mode)
radaka_survival.vmf (the set of entities used for survival)
radaka_scavenge.vmf (the set of entities used for scavenge)
radaka_skybox.vmf (the skybox entities which would normally be placed in a distant corner of the map)
Inside of the master vmf (radaka.vmf in this case) you place func_instance entities which reference each vmf and place the entities in the world depending on the gamemode being played. This seems similar to point_template, just more streamlined, complete with a drop-down menu at the top of the hammer window (Instances).
At least that's what I've been able to figure out by muddling around in valve's examples included in the L4D2 Authoring Tools. I was able to replicate the results in my own map.
EDIT: I also posted this in
a new thread over at
www.l4dmaps.net