Dla mnie "at" zawsze kojarzy się z lokalizacją ogólną, niekoniecznie "wewnątrz". Dla przykładu "at school" kojarzy mi się z tym, że jesteśmy na terenie szkoły bądź wewnątrz, a "in school" jedynie wewnątrz.
Ciekawa notka z innego forum:
I may be at work, but I'm never in work – unless I'm lost in my work.
I may be at home, but I'm never in home – only in my house.
I might speak in jest, but I would never speak at jest.
I might be at the restaurant, but I could be in the restaurant. At the restaurant would include being in the parking lot, but I probably wouldn't be at the parking lot – unless we were meeting at the parking lot.
Kwestia jest złożona - pomimo jakiś ogólnych reguł - kontekst determinuje "wyjątki".