I joined the VS Setup team over1.5 years ago.  The first project I worked on was to help reduce the number of reboots for the .NET Framework.  We concentrated on reboots caused by mscoree.dll being in use which the CLR team agreed that a pending file rename operation on that file would not cause any ill effects if we did not prompt the user for a reboot after the framework install. 

Jungwook (one of our setup devs) came up with an algorithm to figure out why mscoree.dll was requesting a reboot and he wrote some code in our setup code base to defer the reboot depending on certain known ignorable cases.

The result a year later...

After over 250,000 Beta framework installs, 19.8% would have caused a reboot but the install did not reboot because of the work we did.  That's almost 50,000 machines that didn't require a reboot anymore during the installation.  You might think that's a small number but if we end up getting millions and millions of 2.0 Framework installs, 19.8% of that becomes a significant amount.

Just a little tid bit I wanted to share with the community and hats off to Jungwook on this one.  We're getting closer and closer to the finish line.

-Quan