Problem is that ntpd is too dumb to know when you have a network connecction and when you don't. NetworkManager can't be started earlier because dbus & hal aren't started early, because they are installed in /usr and that's not guaranteed to be mounted until somewhere in the middle of the boot process. ntpd needs to be smarter about when it does & does not look for servers based on whether or not there's a connection.
Best place to discuss changes to that program would be the ntp newsgroup, comp.protocols.time.ntp.
I was going to suggest bringing up ntpd with the network ifup script, but you want ntpd to run with no connections to compensate for drift in the native hardware clock. Some setups may not use the network for time but would use a local source like a GPS receiver, and only act as servers to other systems.