We use the Java preferences in some of our apps and haven\'t really noticed this since the utility that makes the calls is fairly old and was written in Windows XP days. But
I had a similar problem when I worked with systemRoot preferences and with the help of a registry monitor I discovered that the location where they are stored changes depending on if the Windows operating system is 32-bit or 64-bit.
Under 32bit OS (Windows XP in my case) the systemRoot registry path was
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs
Under 64bit OS (Windows 7 in my case) the systemRoot registry path was
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Prefs
The same 32-bit JRE (JRE 1.6.0_20-b02) was used on both systems.
When running a 32-bit application (the JVM) on a 64-bit windows the registry automatically inserts the Wow6432Node path element to allow for applications compiled for either 32-bit or 64-bit to co-exist on the same machine while keeping their settings separate.