I think what you are looking for is the tag “intangible”. From the egg syntax part of the manual:
intangible
Rather than being a solid collision surface, the defined surface
represents a boundary. The name of the surface will be thrown
as an event when an avatar crosses into the interior, and
name-out will be thrown when an avater exits.
So, for example, to turn your boxes into triggers for camera events, you can use the “trigger” tag which maps to an intangible.
trigger
This is equivalent to <Collide> { Polyset descend intangible }.
The geometry defined at this root and below defines an invisible
trigger surface.
I am not exactly clear on how this is different than a normal collisionNode/collision solid bundle. I am guessing that the intangible flag does exactly that – Instead of that set of collision geoms causing collision responses, they just emit events. In other words, they can be collided with but not in any solid sense. Any object colliding with an intangible will just fly through it. It would then be up to you to code a specific response in case you want to use them as world boundaries and so on.