In the Redhat ecosystem, kickstart is usually used to provide this type of functionality. While primarily designed for automating unattended installs, if portions of the install information are left out of the script such as network configuration or user setup then the installer will prompt the installing user. Using kickstart you can specify a base set of required packages, add repos, automatically install additional packages you've included on the dvd as well as a robust set of pre-install and post-install scripts.
Here is a step by step guide for generating a kickstart for Centos 6.
This is the approach Fedora takes to provide their customized spins.
You'll need to build rpms of your own code, and generate a new dvd iso image with mkisofs. The Centos project appears to not have an automated tool to do this, but it is fairly easy to accomplish. They provide some notes about how they build their releases.
Note that if you can rely on your customers having a network connection you may want to host the kickstart & packages remotely and only minimally customize the dvd image. This would be mostly transparent to the user if the packages are modest in size, but can allow you to update your install process easily and minimize the confusion if an old install image is used.
You can find the official kickstart documentation on Redhat's website, and Fedora provides lots of information about their spin process on their wiki.