OK I just tried it now and it seems to work! I have Ubuntu 7.04 as host and XP is installed on another partition (dualboot) and accessed from Ubuntu with Virtualbox via a vmdk file. I had to create 2 hardware profiles in XP, one used when starting XP from boot and another when accessing it through the VM. I also had to patch XP registry with a utility called mergeide to allow the harddisk to be recognized in the VM.
Then in Ubuntu as root:
VBoxManage internalcommands createrawvmdk -filename /home/kilou/.VirtualBox/WinXP.vmdk -rawdisk /dev/sda
I launched VirtualBox as root too and registered the vmdk file with it. Created a new VM pointing to the virtual harddisk (vmdk file) and go! In the VM I access the dualboot menu that let me choose to boot XP and it works.
So I was in XP guest, connected to www.download.com
and downloaded and installed DivX player. I did that from the VM and it did install correctly.
This is not an extensive trial but it sounds to work correctly and you can modify the install from the VM as well as from XP native. I'd say the "only" drawback of this setup is that you cannot save the state of the VM. You have to shut down windows properly everytime in the VM if you don't want to mess with problems. Also I'd like to find a way to automatically boot XP in the VM rather than accessing the dualboot menu and having to choose it manually.
Another thing is that installing drivers in XP will probably fail if done from the VM. But you can install any driver when dualbooting and using the correct hardware profile. I don't really see any problem with that.
So unless I didn't understand something it seems to work properly and you can use XP in the VM as you would use it from the dualboot. The nice thing is of course the ability to dualboot XP to run it natively for some specific applications