Best method for dual booting and using both in virtuals is with two physical disks. (but it can be done with a single disk - multiple partitions)
If using three or more drives physical disks, data drives are mounted by windows or linux acting as host and accessed using VirtualBox shared folders if needed from Virtualbox clients. (You can't access the physical disk and/or partition if using a single disk, and the same physical disk virtualized at the same time.)
Setup vmdk's for physical disks.
See this guide
Boot to windows. Start Virtualbox linux client.
Boot to linux. Start Virtualbox window client.
Create a separate hardware profile for windows and a separate linux network profile before starting up virtualized existing physical systems. This will keep hardware changes to a minimum.
My preference, although it uses more space, is too clone the systems, physicals to virtuals. Then use rsync to synchronize/backup the physicals. This gives you a backup of your systems as a bonus. And there are no profiles/hardware driver issues except for the first clone import.
When booting up to windows, sync-up physical linux to virtual linux then start virtual linux up.
When booting linux, sync-up physical windows to virtual windows then start virtual windows up.
- For physical-to-virtual conversion, see my previous post on increasing virtual disk size. serverfault.com/questions/2678/how-to-increase-the-size-of-a-virtualbox-disk-image/45639#45639
The best solution is highly subjective. For beginners I would settle on one OS for the system and import the other(s) into Virtualbox on virtual disks (not using a physical disks or partitions). I would use windows for the host as games and other 3D and audio/video apps run "better" on the outside. After the import I would reclaim the exported physical space or leave it as a "rescue/recovery" partition.
For advanced users I would of course use Opensolaris as the host. Linux in a zone and Virtualbox in a different zone for running windows. Also having a dual boot to windows if needed for games/3D. Use virtual shared folders for home directories on ZFS pools on the Opensolaris host. This gives you snapshots, journaled directories, raidz pools, dtrace for debugging, etc. and it's a much smaller virus/rootkit target than windows or even linux.
See this post for snapshot journals, once you're used to them it's hard to go without: https://blogs.oracle.com/erwann/entry/zfs_on_the_desktop_zfs