A dependency service is one that has to start before another service can start. For example, the Directory Service has to start before the Information Store can start.
So the first thing you need to do is figure out is which service is failing to start and setting off the cascade of failed services. Trace the event log backwards in time until you find the first service to fail.
The error code on that service will indicate why it failed. Most often, it's from database corruption or lackof drive space and you'll need to free up some space and then either restore from backup (preferred) or run one of the repair tools (eseutil for Exch 5.5 or edbutil for Exch 5.0).
paul