Preserving Config File Changes
From Mac OS X Server FAQ
The trick to preserving custom configuration is to not put that configuration in a file that is likely to be replaced or edited by an installer.
Use of an include directive allows you to receive necessary updates to configuration files while also maintaining your hand-made customizations in a separate file. Basically, you insert a directive added to the service's primary configuration file that says simply "oh yeah, and go read that other file too". You would make all your customizations in that file which you create, and then add an incldue directive in the main config file that points to your new file. Since your file has a unique name it won't get replaced by an installer.
A good model for this is the way that Apache's primary configuration file /etc/httpd/httpd.conf includes /etc/httpd/sites/*.conf where the various site's config files live. This way, httpd.conf can be replaced without affecting the stuff stored in /etc/httpd/sites/. Server Admin will maintain each of the site's files for you, so if you have lots of other configuration (say, extensive <Location> directives), it may be wise to keep that in a separate file. As long as it's in /etc/httpd/sites/ and has a name that ends with .conf it will automatically be loaded when the web server loads, due to the include directive at the end of /etc/httpd/httpd.conf:
Include "/etc/httpd/sites/*.conf"
Each configuration file syntax is different, so consult the appropriate documentation to figure out how to include things from other files.
If you determine that configuration you need to preserve cannot be 'included' from other files, then you may need to lock the file to keep it from being replaced.
