Is there any setup that will allow one to plug in and boot via USB (most likely a linux distro) and then bring up Windows XP (or any OS) in a VM?
This is not theory. It will definitely work as I have done very similar things before. A linux OS on a usb drive is just as powerful as the full fledged hd. Speed is indeed the only issue.
The basic idea would be to get the live OS on to the usb and allow it to be persistent (changes be made and kept after a restart)
create a bootable partition on the usb drive and rsync all of the data on the live disc over to the usb.. fdisk the usb device and create 2 partitions. one should be bootable and the other should be for all of the changes
then create an ext3 filesystem on the bootable partition ie:
then create directories.. mount the usb.. mount the iso and rsync the data over to the usbs bootable partition ie:
Grub would then need to be installed on the device..
grub-install --no-floppy --root-directory=usbmount /dev/usbdevice
This usb should then be bootable. I cannot give help on how to enable persistence as this might be different on a per distro basis.
Hopefully this will get you started. Its the same basic idea behind a persistent backtrack usb.
In theory, yes. You could have a Live Ubuntu USB stick with VirtulBox-for-Linux installed inside. However the read/write speads would be appalingly slow and I don't know if it installs any extra drivers...but if it does so it would install them to the USB...
I'd say plausible, but not reccomended.