If you have a large app like Oracle or Siebel or even SAP you might like to have a good look at the application with the view of changing the msi somewhere down the track.
If you are deploying to a large enterprise using SMS or GPO or Altiris then think about splitting out any files that might actually need to change in the future. Files like tnsnames.ora in Oracle will constantly be updated by the DBA's and as a result you may be forced to resend Oracle with every change.
I like to make a seperate Appconfig msi for apps like that and then in the future all I do is update the config file and redeploy.
You will save lots of time and effort and the management will love it because you wont have to resend hundreds of mb's each time.
[One member adds, "Oracle 9,10 allow for scripted (recorded) installs, packaging then is reduced to manually adding the ODBC connections."]