I will be using a func_brush that seals the door to VIP. That brush should contain a keyvalue like "type" = "vipaccess" or something. I'll be using ShouldCollide to set up rules for VIP/Normal players. I discovered that ShouldCollide isn't called when colliding with brush entities. What I do now, is I have a 'rebound' spot near the VIP / admin only brushes, and once people touch the brushes, they get teleported to the nearest rebound spot.