I've been doing some packaging of software within SCCM recently. As I'm rediscovering, each software package has it's own trick to get an unattended installation working. One usueful trick I found with MSI's is use the /l* logname.log when installing from the command line. After the installation has completed, you can open the log file and look for the variables that can be set.
For example, the program I wrote for handling logfiles, http://www.iislogs.com uses MSI installer. To perform an unattended install, here is the command in Step1. It creates a log file called install.log.
msiexec /qb /i IISLogsSetupConsoleApp.msi /l* install.log
After reviewing the log, I find a property called TARGETDIR= This will help have a custom location while performing an unattended install
msiexec /qb /i IISLogsSetupConsoleApp.msi targetdir=c:\iislogs20 /l* install.log
Interesting links that have some packaging information
Search for the word PROPERTY in the log file and find other interesting properties. I only really needed for most of my packages to install to a custom location on a separate data drive. D:\Apps for example. In conclusion, I wouldn't generally log "everything" when doing a mass rollout, but for initial package creation, it can be a really cool way to see what options you have available. If you have other tricks using different installers, please pass them along. :)
Microsoft MVP - IIS