You can have several different versions of BG2 on your computer without using Mods or virtualization programs. For example, if you want to have the original version of Shadows of Amn on your computer as well as Throne of Bhaal (which modifies Shadows of Amn in many ways), you can easily have both. All you need are plenty of hard drive space and a different shortcut for each game, and there shouldn't be any confusion or incompatibility.
Here's how. First install Shadows of Amn. I recommend a Full install. To save about half a gig of hard drive space, you can put all of the data files in the main /DATA directory and all of the movie files in the main /MOVIE directory. By default, the data files from each CD are placed in a separate directory for each CD (CD2, CD3, etc.) and the path for each CD is specified in the BALDUR.INI file. All you have to do is move them into the main /DATA and /MOVIE directories--overwriting all of the redundant files to save disk space--and change the paths in the BALDUR.INI file. At this point, you can apply the official patch or just leave it alone.
Now you can make as many clones of this directory as you want and modify them any way you wish. I prefer to make a backup copy of the original installation and make my modifications to the main BG2 directory. For example, if I installed the game in a directory called C:\GAMES\BG2, I would copy all of those files to a new directory called C:\GAMES\BG2_SOA_BACKUP and make C:\GAMES\BG2 my "working directory".
At that point, I would install Throne of Bhaal and the official Throne of Bhaal patch. Again, I would make a backup copy of the original Throne of Bhaal installation and put it in a new directory called C:\GAMES\BG2_TOB_BACKUP. Then, using C:\GAMES\BG2 as my "working directory", I would mod the heck out of it.

Any time I wanted a game with a new set of mods, I would move the contents of C:\GAMES\BG2 to a new directory with an appropriate name and copy the contents of the TOB or SOA backup directory to the current working directory. For example, if I had installed Tactics and the Saerileth NPC mod and I wanted to create a new game without those mods, I would move the contents of the C:\GAMES\BG2 directory to a new directory called C:\GAMES\BG2_TACTICS_SAERILETH and then copy the contents of C:\GAMES\BG2_TOB_BACKUP into the C:\GAMES\BG2 directory and then start modding from scratch.
To continue playing the game I moved to the C:\GAMES\BG2_TACTICS_SAERILETH directory, all I have to do is to change the paths in the BALDUR.INI file for that game and create a shortcut such as "TOB Tactics Saerileth". When you install BG2, some entries are added to the Registry, but they can be safely ignored or even deleted. The main purpose of those Registry entries is to tell various programs (such as official patches, various mods, and Shadowkeeper) where to find your BG2 installation. But in most cases, you can specify the path manually when a program asks for it. For example, if you want Shadowkeeper to load the saved game files from your C:\GAMES\BG2_TACTICS_SAERILETH directory, just tell it to look there instead of looking in your C:\GAMES\BG2 directory. You can even install Shadowkeeper in several different directories and have a separate configuration file and a separate shortcut for each installation.
The main thing you need to be aware of when you install mods is that they are likely to look at the Registry and modify the installation you put in your C:\GAMES\BG2 directory (or whatever name you gave to your original installation directory). Just make sure you don't install the mod in the wrong directory. If your mods get screwed up, just delete the contents of the current directory and copy the files from your backup directory.
The method I described is time-consuming and it requires a great deal of hard drive space. But once you get the hang of it, it's simple (if you have some basic computer skills) and it works like a charm.