Basically, you have dynamic areaportals called occludes and you have the normal areaportals which you can trigger in game. Dynamic areaportals suck and are only useful in multiplayer. I'm going to tell you how to set up a normal areaportal.
What you want to do, is construct a little space in your map with the existing brush geometry and brushes textures with the areaportal texture. You can construct the space with as many areaportal brushes as you want, but they must be tied individually to the func_areaportal entity, must have the same name, and have the same state (open or closed). That whole space inside the little bubble you have created can now be controlled, and told to render on/off in game. Anything that lies within both the bubble and outside the bubble will be rendered regardless.
You can render/hide the insides of the bubble (to save performance ofcourse) with triggers. The best way I find is to make two trigger multiple brushes. One will trigger it "open" which means it renders the insides, and one triggers it "closed" which means it does not render the insides.
You want the two trigger multiples to cover the whole pathway so the player can not go under/around or ontop and you want them paper thin. You also want them close to eachother maybe 64 units close, and ofcourse, you want them ranged in a logical way.
This diagram should help you (if img preview dosen't work, kill me now):
To conclude:
-You can use as many areaportal brushes to seal off your bubble as you wish
-They must be individually tied to the func_areaportal entity
-Your bubble must not have any leaks!
-Set your trigger_multiples reset time very low, like 0.1 seconds
Edit: So basically, if vis was perfect, than you wouldn't need to construct areaportals. But its not and will often (understandably) render areas that the player can't see.
Btw, another good way to save on performance is increase the lightmap scale on things that it dosen't matter if the shadows are more diffuse. Light map dosen't really decrease the quality of the lighting on that particular surface, but it makes the shadows more diffuse and increased lightmap scale will decrease compile time and increase ingame performance.
Edit2: Oh yeah, don't use normal areaportals in Multiplayer maps because Valve foolishly made it so that if you trigger an area portal off, some poor sucker will suddenly have his surroundings disappear on the other side of the map. Darn valve and their non client side areaportals.
Aaron's Stuff