A large distributed system cannot rely on any other part being what one might expect.
Therefore: Design the parts of your system to reach out into the system and cautiously make use of whatever is found.
Those who favor late-binding often attempt this approach with marginal success at best. The trick is to consider it to be a central (and challenging) architectural element rather than an excuse for brushing off launch sequence issues. Contrast with LaunchScript. -- WardCunningham
I worked on project for the DoD that worked like this -- ErikMeade