Stuff starting at boot largely has an ordering dependency because that daemons are not really all that clever.
NFS needs to wait for networking? Well, the NFS daemon should be able to block on netlink until a route to the server appears.
Why does ssh need to wait? Because in some cases resolv.conf isn't updated yet, or the address it wants to bind to doesn't exist yet. Fix that and the dependency goes away.
Hopefully upstart has a better dependency mechanism than just waiting for script X to finish. It should be things like 'run me after /var/run/ appears' or 'run me after eth0 appears' or 'run me after a route to x.x.x.x appears'. ie things that actually matter.