You haven't told us anything about your hardware configuration but, if your system can handle the load, a VM would be the best way to go. Create your VM with the desired OS, and instead of shutting it down, you can just pause it. When you want to switch OS, start up VM, unpause, and go. Also, by using a VM, you can control exactly what the other OS can see so no worries about unauthorized access.
Can you provide a little more information about "when a friend wants to use...computer"? Will the friend be taking it with him/her or sitting in your presence? Will the other OS also be Vista or will it be XP or some flavor of Linux?
Yep, with your hardware, definitely go with a VM. VirtualBox is your best bet.
I don't see why switching users would not provide a satisfactory solution. It can generally be done in 10-15 seconds and as the owner of the machine, you have administrative control. You can control what files, programs, settings, and whatnot the other user has. He won't be able to break into your session or get into anything you don't want him to. It also has the virtue that you don't have to set up another operating system and maintain its updates. You can even restrict him from being able to reboot the machine. (Of course, you can't do anything about the "Off" button, but...)
Also, switching users is a one-key sequence: Windows + L