Windows can't replace system files or DLLs that are in use, so when a software installation or upgrade needs to replace these types of files, it sets a flag in the registry that tells windows to replace them during the reboot process (before they are opened). As fo3nix says, it's a pretty primitive hangover from the old days. MS of course, would rather put their resources into bells, whistles, and bloat that they believe drive sales, rather than improving the underlying code that would lead to a more sophisticated product.
You are usually a given a choice though, so if you are installing a lot of stuff, you can usually prevent the reboot, and do it manually after all the other updates have been installed.
Be grateful you weren't around in the days of CP/M when replacing the teeniest bit of hardware meant that you didn't just have to reboot but had to recompile the entire operating system! Ah, those were the days...