Another possibility would be to use etc/courier on an NFS mounted directory, and symlink each .dat file to /var/local/etc/courier/ (create the dir yourself). Modify each make* script to keep the dat files in that location. The attached patch would modify makealiases to do exactly that. Similar changes would be needed in makesmtpaccess and makeacceptmailfor.
Since I've been meaning to look into this particular setup myself for a while, I'm going to be testing the attached patch. If you want to help me test it, by all means...
--- ./courier-0.44.0/courier/module.esmtp/makeacceptmailfor.in.orig Wed Nov 12 14:22:53 2003 +++ ./courier-0.44.0/courier/module.esmtp/makeacceptmailfor.in Wed Nov 12 14:23:25 2003 @@ -13,5 +13,5 @@ umask 022 exec ${bindir}/makedat \ -src=${sysconfdir}/esmtpacceptmailfor.dir \ - -file=${sysconfdir}/esmtpacceptmailfor.dat \ - -tmp=${sysconfdir}/esmtpacceptmailfor.tmp + -file=${localstatedir}/etc/esmtpacceptmailfor.dat \ + -tmp=${localstatedir}/etc/esmtpacceptmailfor.tmp --- ./courier-0.44.0/courier/module.esmtp/makepercentrelay.in.orig Wed Nov 12 14:23:40 2003 +++ ./courier-0.44.0/courier/module.esmtp/makepercentrelay.in Wed Nov 12 14:24:08 2003 @@ -13,5 +13,5 @@ umask 022 exec ${bindir}/makedat \ -src=${sysconfdir}/esmtppercentrelay.dir \ - -file=${sysconfdir}/esmtppercentrelay.dat \ - -tmp=${sysconfdir}/esmtppercentrelay.tmp + -file=${localstatedir}/etc/esmtppercentrelay.dat \ + -tmp=${localstatedir}/etc/esmtppercentrelay.tmp --- ./courier-0.44.0/courier/module.esmtp/makesmtpaccess.in.orig Wed Nov 12 14:33:54 2003 +++ ./courier-0.44.0/courier/module.esmtp/makesmtpaccess.in Wed Nov 12 14:33:08 2003 @@ -25,10 +25,11 @@ ;; esac +accessbase=`basename ${ACCESSFILE}` umask 022 ${bindir}/makedat \ -src=${ACCESSFILE} \ - -file=${ACCESSFILE}.dat \ - -tmp=${ACCESSFILE}.tmp -cidr || exit 1 + -file=${localstatedir}/etc/${accessbase}.dat \ + -tmp=${localstatedir}/etc/${accessbase}.tmp -cidr || exit 1 ${sbindir}/couriertcpd -pid=$PIDFILE -restart --- ./courier-0.44.0/courier/module.uucp/makeuucpneighbors.in.orig Wed Nov 12 14:34:14 2003 +++ ./courier-0.44.0/courier/module.uucp/makeuucpneighbors.in Wed Nov 12 14:34:39 2003 @@ -13,5 +13,5 @@ umask 022 exec ${bindir}/makedat \ -src=${sysconfdir}/uucpneighbors \ - -file=${sysconfdir}/uucpneighbors.dat \ - -tmp=${sysconfdir}/uucpneighbors.tmp + -file=${localstatedir}/etc/uucpneighbors.dat \ + -tmp=${localstatedir}/etc/uucpneighbors.tmp --- ./courier-0.44.0/courier/makealiases.in.orig Wed Nov 12 14:17:31 2003 +++ ./courier-0.44.0/courier/makealiases.in Wed Nov 12 14:20:34 2003 @@ -43,9 +43,9 @@ localstatedir="@localstatedir@" aliassrc="" -aliastmp="" +aliastmp="-tmp=${localstatedir}/etc/aliases.tmp" aliasdump="" -aliasalias="" +aliasalias="-alias=${localstatedir}/etc/aliases.dat" module="" protocol="" xaliasdir="" --- ./courier-0.44.0/courier/makehosteddomains.in.orig Wed Nov 12 14:20:48 2003 +++ ./courier-0.44.0/courier/makehosteddomains.in Wed Nov 12 14:22:30 2003 @@ -8,9 +8,10 @@ exec_prefix="@exec_prefix@" sysconfdir="@sysconfdir@" bindir="@bindir@" +localstatedir="@localstatedir@" umask 022 exec ${bindir}/makedat \ -src=${sysconfdir}/hosteddomains \ - -file=${sysconfdir}/hosteddomains.dat \ - -tmp=${sysconfdir}/hosteddomains.tmp + -file=${localstatedir}/etc/hosteddomains.dat \ + -tmp=${localstatedir}/etc/hosteddomains.tmp