Entities cannot be detail brushes.
Curves cannot be detail brushes.
This is sort-of true, but doesn't paint the whole picture. Here is the real low-down on structural vs. entity brushes:
Let's say you are building a map that consists of a field, a building, and a sky up above.
You build your skybox and your field "floor." These, of course, you are going to set to be "structural," because they touch the void. Aazell was correct about that: any brush that touches the void must
Where we get to the finer points of structural/detail debate is at the building construction. The brushes that form the building probably do not touch the void, so your first instinct may be to make those brushes into detail brushes. However, assuming that the interior of the building is sealed off by a door/areaportal, you probably do not want to be able to see the inside of the building while you are outside in the field. This is why the outer walls of the building must also be structural brushes.
Do you understand the VIS process of map compiling? This is the stage where q3map2/sof2map decides what portions of the map should be drawn, depending on where the player's point-of-view is located. Detail brushes (this is the important part) are invisible during the VIS process (just like curves/patch meshes and entities), so, if you were to make the outer walls of the building into detail brushes, the triangles that make up the interior of the building would be drawn no matter where the player was. This is not how you want it to be (unless you don't mind an absolute **** fps), so you need to learn to use structural brushes to "section off" the various parts of your map.
Keep in mind these things:
No detail brush may touch the void.
No curve/patch mesh may touch the void.
No entity may touch the void.
Structural brushes create portals (during VIS).
So, if you design your map consientiously around these key concepts, you'll see a vast improvement in fps (though you might see a bit of a hit on your compile time--long compile time is worth it, however, while ****e fps is not).