Does each location have its own dedicated IP subnet? For example, our building 32 has IP addresses that start with 10.32.x.x while building 33 has 10.33.x.x addresses. If you have something like this setup, then you can list phones by their CSS and see if any of the phones are in the wrong subnet.
While I've never done this, CallManager 4.2 allows you to define a CSS by IP address. So if the user moves their phone to a different location, it should automatically switch to using the new location's local gateways.