The first thing I'd worry about is the way you escape every special character. When done right, it will work fine, but it seems unnecessary here. If you need to include double quotes in your string, then pack your argument inside single quotes.
Can you try the following and see if it helps?
$cred = Get-Credential
Start-Process -FilePath "msiexec.exe" -ArgumentList '/i "C:\temp\jre1.7.0_17.msi" /qn REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0 /log c:\temp\javainst.log' -Credential $cred -wait
Also, as I commented in your previous very similar post, can you explain why you need to use msiexec
instead of java's own exe setup?
EDIT Try this:
$cred = Get-Credential
Start-Process -FilePath "c:\temp\jre-7u17-windows-i586.exe" -ArgumentList '/S /L c:\temp\javainst.log REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0' -Credential $cred -wait