I installed caching-nameserver and made 127.0.0.1 my only nameserver in /etc/resolv.conf. Tastes great, and works much better than nscd which doesn't work for my configuration (it does not work properly with compat NIS notation, food for another ticket). However, I have since had problems with some other startup scripts (i.e. ypbind) that use nameservice. named starts too late (S55named), and without another nameserver configured, things don't work very well. My assumption is that nameservice is a critical network service that should be available as soon as the network comes up, so I moved it to the space available at S11named. Since then everything starts up great.
Whether named is installed at any runlevel has always been up to the administrator - they must do something like: # chkconfig --level=345 named on # chkconfig --level=0126 named off because the chkconfig line in /etc/init.d/named has always been: # chkconfig: - 55 45 # Meaning that named is not "on" by default in any run level, and is started with order 55, and stopped with order 45. As you point out, many services that require a name service are started before named by default, so the '55 45' positions are not good as defaults . In the next version of named, I will make the chkconfig line: # chkconfig: - 11 89 so it should get started / stopped directly after / before the 'network' service . The traditional behaviour of not being run in any runlevel by default will be preserved.
This is now fixed in bind-9.2.5rc1-1 (FC3) / bind-9.3.1rc1-1 (FC4).