InstallShield is a utility for creating installation packages. Using such an installer, you can generate scripts to do just about anything at installation time, from checking requirements to making registry entries to placing all application components in the right directories. In my experience, InstallShield is expensive and has had some major flaws over the years. With that said, I haven't used it in a while.
There are several alternatives to InstallShield. One my personal favorites is
Inno Setup[
^]. It's powerful and open source. You can pretty much do anything with it (from what I've seen). Only issue is that the learning curve is perhaps a little bigger than it would be with InstallShield.
[RB Edit: Fixed your link]