In Unix, you would never consider saving files to the /usr/local/bin/ directory, and yet for years programs in Windows did the equivalent of this by default (writing to the program's install directory). When Microsoft decided that this should be no longer possible, they created the convoluted ghost copies of all the system directories any time a non-privileged program writes to them. They were in a bind, because they couldn't do what is arguably the right thing, which is to completely disallow writing to those directories. So they went with a hack that effectively disallowed writing to the directories, while allowing old programs to function by having the files magically show up elsewhere.
Ever since Vista was released in 2006 (and possibly before that), Microsoft has instructed developers that programs should only write to the logged in user's user profile directory (C:\Users\<username> by default in Vista and Win 7, and available via the %USERPROFILE% environment variable, as well as via a Win32 function call), and never write to the Program Files or Windows directories (or sub-directories under there).
I'm not a Microsoft fan, and the whole VirtualStore thing is a royal pain (especially since Explorer doesn't show the files in the location the user thinks they should be), but in this case, at least they did it for a good reason (security). I do think they should have made Explorer show the VirtualStore files in the place the user thinks they're located (with some kind of visual effect to indicate they're actually elsewhere, perhaps).
Ever since Vista was released in 2006 (and possibly before that), Microsoft has instructed developers that programs should only write to the logged in user's user profile directory (C:\Users\<username> by default in Vista and Win 7, and available via the %USERPROFILE% environment variable, as well as via a Win32 function call), and never write to the Program Files or Windows directories (or sub-directories under there).
I'm not a Microsoft fan, and the whole VirtualStore thing is a royal pain (especially since Explorer doesn't show the files in the location the user thinks they should be), but in this case, at least they did it for a good reason (security). I do think they should have made Explorer show the VirtualStore files in the place the user thinks they're located (with some kind of visual effect to indicate they're actually elsewhere, perhaps).