I will start with something I have worked on, then people can share their approaches. I worked in InstallShield PackageForWeb (A light weight version of InstallShield) to install patch of an enterprise application over a cluster of windows machines. I believe using an InstallShield product for installing is much easier and controllable then any other language like C#. Regarding the complex install script, I don't think we need to play with the script. Latest InstallShield provides pretty much user-friendly configurable mechanism which automatically generates the install script.
If your enterprise is too complex to be handled by general InstallShield settings and you feel the need to modify the install script but worried to mess it up. You can try this- Launch a separate script written in any Windows Automation Languages (AutoIT or Auto Hotkey) during installation and let that script handle the rest. This approach is pretty useful because these windows automation scripting languages can do anything with windows we can think of, I mean anything. I have successfully tried this approach for over 2 years. Suggestions are welcome .