Generally if you set the collision to polygons for the environment, you'll cover all of the bases. The problem is, depending on the complexity, processing speed may be eaten up and there also seems to be a litmit to the number of polygons that can actually be set to polygon collision. If the structure is not too big, or you can divide it into sections and load each section as it's own object, polygon collision detection works pretty well.
Quote: "Do you have to set up collision boxes around say each column and staircase of a structure?"
I've never gone as far as that but I suppose if you could figure out the exact positions you could create static collision boxes around every feature. I don't know how much processing speed it would consume (depending on how many collision boxes you made). For staircases, it seems you'd have to put a box around each individual stair so that seems a bit impractical.
The better alternative, in my opinion, is to use Sparky's Collision DLL.
Enjoy your day.