If it's 2D, then I suggest learning some line to line collision and circle collision and then make the system yourself.
If you have a convex sequence of lines making a zone, like a shape made from lines around the walls for instance, then it's quite straightforward to work out if your inside or outside of the zone. If you could the number of collisions between the camera position X and Z, and some far away point outside of the zone, then you can use that to tell if its inside or outside. Just check to see if the count is odd or even, if it's 0,2,4,6,8 then you are outside the zone, if there is 1,3,5,7,9 collisions then you are inside the zone. I think it would work out faster than object collision, but probably slower than rotated boxes - really it depends on the shape of your zones, how complex are they, and how complex is the level itself.
Circular zones could use a simple 2D distance check. The real challenge is organizing it all without using a ton of memory.