So I tried to install VS2008 b2 on my work laptop this morning and got a shower of red fail icons while .NET 3.5 while being installed. All the log files for this install are in the %temp% directory, so i had a look there. And in the log dd_dotnetfx35error.txt, the less than useful line:

Microsoft .NET Framework 3.0a: [2] Error: Installation failed for component Microsoft .NET Framework 3.0a. MSI returned error code 1603

1603 is just the code for a fatal error, so that's not much use. The problem is with the .NET 3.0 install, so I had a look in dd_NET_Framework30_Setup6CEB.txt. Sure enough, a handful of 1603 errors looking mostly like this.

MSI (s) (88:70) [11:25:20:186]: Product: Microsoft .NET Framework 3.0 Service Pack 1 - Update 'WPF_Other_32' could not be installed. Error code 1603. Additional information is available in the log file C:\DOCUME~1\dmaharry\LOCALS~1\Temp\dd_NET_Framework30_Setup6CEB.txt.

But no additional information that I could find. Mooching around online for a few more clues, I found two great posts from Aaron Stebner on getting to the heart of 1603s (or slightly further towards it anyway)

The gist of the posts is that you can add a couple of flags to the registry that tell Windows Installer to log every single action it takes during an install. You can then look further into exactly what caused the issue and take action (hopefully). These are very large files though and take a while to create - VS2008 creates a 12MB file in about an hour just to load the installer components and get to the first installer screen so it's not for someone in a rush.

In my case, the post-install after .NET 3.0 SP1 wasn't working so the whole thing crashed. I ran it separately from the \wcu\dotNetFramework\dotNetFX30\NetFX30a_x86.msi file on the DVD identified in dd_NET_Framework30_Setup6CEB.txt as the cause of the problem and it worked fine. VS2008 then installed fine. YMMV, but Adrian Roman details his adventures with the same process here so you can see the kind of detail made available with Aaron's tip.