VB 6 is trying too hard to be helpful

I have had the dubious pleasure recently of maintaining a VB6 Application.
The fun part is how helpful it tries to be in the background.
VB6 goes out of it’s way to hide any technical details from the user.

For example the app uses access as it’s reporting suite.  To call access it uses the COM API’s.
Our set up is odd in that we need an application that supports both Acesss 2000 and Access 2003.
For various reasons my dev machine has been upgraded to 2003.  I changed the reference to point to the new typelibrary and checked the code into our version control software.  I can now no longer point to the access 2000 olb and rebuild the exe – the two are just not compatible.  SO I get a colleage who still has Access 2000 to pull the code from version control.  As soon as he opens the app in VB6 it has automatically fixed up the OLB back to the Access 2003 version.  How the hell are we meant to control which version is released?  I guess my friend is now buildmaster!

I oftern wondered why the VB project file had to be writeable every time we pulled it from version control.  Apparently it updates the paths to any com objects to record those on the machine.  Someone needs to explain to people that is why we had COM in the first place…