Services scripts can have conditional logic... foo initscript if network is running do this if network is not running do that bar initscript if sshd is running do this if sshd is not running do that
This is a boot-centric way of looking at the problem. Instead, think hot-plug. foo has two scripts, one that runs right away without a dependency, and the other runs when the network hot-plugs into existence, after the first script signals that it's done. Everything can be event-driven.
I followed Jeff Pitman's link and his page has a link to Richard Gooch's interesting "need" scheme:
<http://www.atnf.csiro.au/people/rgooch/linux/boot-scripts/>
It looks like this scheme stores the dependency graph in init's memory, so shutting down a service should also shut down its dependencies first. (When considering a boot scheme, you also need to consider its effect on shutdown and runlevel-change processing.)