I am in the process of converting my virtualization over from Parallels to VirtualBox. I don't play games or use any other Parallels' advanced features, and VirtualBox seems to do the trick just fine for me, and feels more future-proof plus no money for updates.
I'm running a Mac OS X host system, and Windows XP as guest. One device class that has always been trouble in virtualization is USB smart card readers, which I need for Estonian ID card. Sometimes the host system hijacks the device, or the guest needs a reboot to recognize it, or what not.
So I searched around and found a solution mentioned in VirtualBox bugtracker that did the trick for me. It is important you follow it precisely with all the device connections etc. I didn't know about VirtualBox USB device filters before today, but apparently they are necessary to let VirtualBox grab access to the device.
Connect the device to the host system.
Start VirtualBox, but not the VM.
Add a USB filter for the device to the VM (required only once).
Disconnect the device from the host system.
Start the VM.
Connect the device to the host system once the VM is running.