Alright guys. It's taken me this long to get this sorted out once and for all. This worked for me but it may not for others due to me having a boot partition which chainloads everything.
The following was done on Debian Wheezy (currently testing in freeze) Virtualbox installed from repos, version 4.1.18.
# vboxmanage internalcommands createrawvmdk -filename /home/<user name>/windows.vmdk -rawdisk /dev/sda
This makes the vm file, but it is of the whole hard drive, not just the Windows partition. I had to do it this way because i couldn't get it to work with only the Windows partition. Doing this, you are going to want to make sure you don't boot the linux partition currently running.
# chown <user name>:users /home/<user name>/windows.vmdk
# usermod -a -G disk <user name>
The chown command will change the user group of the created .vmdk file from root to you.
The usermod command puts you in the disk group, you need this or it won't work.
Open virtualbox, select 'New', continue with the propts, naming it windows, and making windows the os ect.
Windows 7 apparently needs at least 512MB of ram, so make sure that requirement's filled.
Once you're at the 'Virtual hard disk' part, select 'use existing hard disk'. select the one created earlier, and it should all be good. Some people have said you need to open the settings of the windows vm and allocate at least 50Mb of ram for video; but i have it running fine on just 18Mb.
Once the vm is created, reboot you computer into Windows and run the .reg file that can be downloaded from below.
This will modify the Windows registry so that windows won’t check hard drive structure upon start-up and won’t fail if it's changed.
I can not say if the vm will boot without this, because i did a lot of trial and error and have not tried this method absent of this step.
Boot back into linux and try to run the vm.
It will boot up your bootloader and then into Windows, (I've changed my default os to Windows, so that i won't accidentally boot my running Gnu/Linux os in virtual box and cause data corruption. I don't shutdown much anyways)
When i boot Windows in the vm, it showes the Windows7 splash screen and then a black screen with a movable mouse cursor. It doesn't seem to be doing anything, but if i wait long enough it eventually boots into Windows 7.
I hope this has helped anyone else looking to do the same as me.
Thank you jefro for your suggestions.
As an additional note:
due to virtualbox registering as different hardware, Windows will require reregistration under the virtual machine. I own a license for Windows 7 on my machine, and could not find any way possible in fooling Windows into thinking it was the same hardware, even though technically it is. I do not condone pirating, but i used a program often used to pirate Windows, in order to re-register my legal version of Windows under the vm. This has not affected Windows when i do a native boot. This was a last resort for me, but i couldn't find another way. If you run other proprietary software under Windows, that requires registration, you will probably have to do something similar for that too.