You can boot virtual machines natively provided you have set them up as such. The best way to do this is to configure them first as native machines, then virtualise.
So you would start with a Windows 7 installation, then install Fedora in its own partitions in a dual boot setup. It is important that Fedora is configured such that it does not mount any of the Windows partitions as this will lead to corruption when running it or Windows as a VM - you can't have both Windows and Fedora accessing the same NTFS partition concurrently.
So now you have dual boot windows and Fedora, booting via grub.
Then install VirtualBox on Windows. Create a new Fedora VM, but instead of creating disk images, create a physical disk, and point to the main disk drive you have installed Fedora on. Now you'll be able to boot Fedora as a VM, as well as boot it natively in dual boot. Note that when you boot the VM, it will load up the grub menu, and you need to select Fedora. The grub menu will contain an entry for Windows, which is the same Windows you are running Virtualbox from. It is vital that you do not attempt to boot a virtual copy of the same Windows install under virtualbox - this will lead to much corruption! Ideally, remove the timeout option from grub so that it doesn't inadvertently load an operating system you don't want to to.
Note that you can also boot up Fedora natively, install virtualbox, and create a new VM and point to the same physical disk. This would then let you run your Windows installation as a VM under Fedora (you would need to set up hardware profiles to avoid re-installing drivers all the time).