This problem bugs me alot, too. What's worse: In my case, on a particular partition, VirtualBox happily acknowledges all I/O to the guest OS and only *logs* VERR_ACCESS_DENIED on writes (reads work). My guest OS does not notice anything, but any changes are lost on reboot (or when page cache is gone).
Thus far, I have not been able to tell Windows 7 to "free" the drive properly.
* running virtualbox with administrative rights did make guest boot off a Linux-only filesystem (ext2, ext3 and XFS partitions seem to work OK), but the same disk contains a FAT32 partition, on which all changes are lost
* removing all drive letters did not change anything
* offlining the disk in disk management made the whole disk behave like the FAT32 partition: guest boots into my desktop, everything works, but all changes are lost and logged with VERR_ACCESS_DENIED
It's sad to see physical disk pass-through in such a half-working state (on Windows 7, I think Linux is a far better host where a root user has actual power over the operating system).
Maybe Microsoft sealed down direct write access to partitions housing filesystems to keep things secure, so there's not much VBox can do, but even so
VERR_ACCESS_DENIED on write should halt the virtual machine (waving at VBox devs).
Some research while writing this revealed this thread in "the other camp", having the same issues:
http://communities.vmware.com/docs/DOC-10455I have not yet tried "attribute disk clear readonly", which may be my solution.