"Evaluation" section of jre6 subCR shows two problems as a root cause of this bug:
LocalAppDataLow does not exist on a fresh installation of Windows Server 2008.
Windows doesn't map System32->Syswow64 for location of *.msi files being passed to
Java7 behaves exactly the same as Java6 until build 118 (Java 7.0 build 118).
Since build 119 jre7 installer in case LocalAppDataLow doesn't exist
simply attempts to access root directory (which is usually c:\) instead.
This modification causes that a fresh installation of Windows Server 2008 64bit
is the only environment where this bug is not reproducible.
Simply *.msi files get created in c:\ (not in c:\windows\syswow64) so
WOW64 mapping is not needed and as a result jre installer doesn't run into problem #2.
However on other Windows 64bit systems (like Windows7 64 bit) the bug is reproducible.