I've wrestled with a few software packages to do this.
WISE Package Studio
WinInstall
Install Aware (sucks)
Advanced Installer
MSIBuilder
etc etc
If the installation is an MSI, you can just create a transform for it. If you're looking to change some things that are done AFTER the software is installed, you might have to go with modifying the MSI directly.