Okay-- I see what you're saying now.
In theory, you could write a service that registers with the "Network Location Awareness" service (http://msdn.microsoft.com/en-us/library/ms739931(VS.85).aspx - available on WinXP and up, I believe). This is exactly the type of thing that NLA was added to the Windows OS for.
This wouldn't be a simple little VBScript thing, but it wouldn't be that much coding either. I don't have the spare cycles right now to work on it, but maybe somebody could pick up the idea and run with it. Being able to register programs to execute based on NLA notifications would be very useful.
Gosh-- there's even sample code! http://www.microsoft.com/downloads/details.aspx?familyid=ef8a6228-f11d-4ba0-b73e-dd8dc7dd11e8&displaylang=en
As a quick-and-dirty fix, you could replace the "Internet Explorer" shortcut with one that ran a script to detect the IP subnet the computer has obtained an IP address from and set the appropriate proxy setting. I'd have to test that w/ already-open IE windows to see how it reacted... (poorly, I'd suspect).
That's a real hack, though.
Okay-- one other stupid hack idea. (Giggles...) You could run a proxy on each machine, configure IE and other software to use the local proxy, and then automate the configuration of the local proxy (possibly based on NLA like I described above). That would get around IE acting poorly if the registry-based proxy setting changed out from under it.
It'd be nice if the people who ran the networks that are outside your control just used proxy auto-config.