I can guarantee that if you took the exact same drive and file and put them on an XP computer, you would get the exact same results. XP and Windows 7 operate in exactly the same way when it comes to copying/moving files. The likely reason it worked before on XP is because either there was more free space on the drive at that time and/or the file size was smaller.
You just weren't letting facts get in the way of a good crotchety old man routine about how things were so much better back in the day when you had to walk to school barefoot, over broken glass, up hill 15 miles, both ways, in the waist deep snow that is blowing around so you could barely see the hand in front of your face, wind chill of -500F, killing and skinning animals with your bare hands to fashion a coat out of their pelts if you got cold, because it made a man out of you and all the people today are soft and lazy, etc, etc.
You have a choice to make: You can either delete some other stuff from the drive to free up another 10GB of space and then move the file in question over, or you can spend 30 minutes using a secure erase program to delete the version on the drive currently and then copy the new one over.
As a programmer, you should know that trying to create a blind move program might well be impossible on Windows 7 (or XP) since it's a protected mode OS. Unlike the Win9x line, those policies are enforced on XP and 7. You'd have to completely bypass all of the normal file i/o APIs for the OS and create your own which, quite frankly, is well beyond the abilities of even many very good programmers. Quite frankly, if you had the programming skill to pull this off, you wouldn't even attempt it. You wouldn't have likely even asked the question, you would have been able to do the simple logical analysis I did years ago by observing how file copy/move programs work and then put that together with your current lack of sufficient free space. You also realize that if you're worried enough about the contents of that file that you need to use a several pass secure delete program on it, simply overwriting the file is a huge hole in your security policy, basically rendering the entire thing pointless.
Say, for the sake of argument, you had 100GB of free space; more than enough to copy the file you want to copy. The copy program would lay down a fresh copy of this file and then simply mark the file clusters used by the old version as free. It won't overwrite the exact same set of file clusters used by the previous version of the file. As a general rule, no operating system will guarantee a specific set of file clusters are used. So all this time you've been simply copying the new version of the file over to the drive, you've been leaving the old version accessible to any ne'er do well who might steal the drive and run it through some kind of file recovery program. If there is some kind of security policy concerning the stringency in which files must be deleted, you should be following that policy every time. Deleting the old file, using the secure erase program and then copying the new file over. Anything else is an enormous hole in your security policy, sort of like having an entire battalion complete with tanks and heavy gun emplacements guarding the front entrance of a warehouse containing secret cargo, but leaving the back loading gate open and unguarded, not even so much as a security camera, so anyone can just walk in and take whatever they want.