I have nothing new. Sathya is right on both parts. He just didn't explain it in detail. Let me explain his answer a little. It's too much for comments so I post it as a second answer...
What causes it? Windows's environment variable such as:
%homepath%. For Windows 7 and Vista, the variable points to the user's profile root folder at -
C:\Users\<<UsersName>>. However, when on a Windows XP system it points to
C:\Documents and Setttings\<UserName>>. Keep in mind the drive letter is part of the whole variable.
Environment variable were created to improve compatibility between different OS. More about them can be found at this Wikipedia site.
How is it control? it is control by the application. For compatibility reasons, the programmer uses variables instead of hard-code paths in there code . So, the only way you can change the location is via registry that allows you to change the path for
%homepath%. This is not recommend because it could have ill effects on programs that has already depended on the location of the folder.