Apologies for dragging up an old topic, but the disclaimer on the OP compelled me to add this note!
There are two reasons windows wants to re-start, but both hinge on the same reason;
DLLs!
A restart of your machine forces Windows to reload all of the DLL's required to run, once explorer is running, the DLLs are locked.
Simply kill explorer.exe (via task manager, right-click your taskbar then go to processes and select explorer.exe, then hit 'End Process' windoze will warn you that it won't warn explorer its about to die! Acknowledge OK)
Hey presto, explorer (which means taskbar, start menu, systray etc) dissappears, and then re-launches itself.
You now have the new DLLs loaded, and your update is complete.
Second reason, is that part of the installation requires these new DLLs to be loaded in order to start off a second stage of installation (anybody remember the upgrade from IE5.5 to 6?) In this case, its generally easier to actually restart windows - if its critical that your machine isn't restarted, there are ways round it, but it involves removing some entries in the runonce section of the registry - ask if you want further details!
Of course, its only helpful knowing this, if you have managed to persuade windows to stop asking you to re-start, but its handy after installations of new programs as well as critical updates etc.
The only problem is that some sloppy coders give you no option but to restart after install... GRRR
Its *MY* machine, *NOT* Billy G's.
How else can a windows server administrator maintain patched environments with full uptime?