The class loader conversation begins to touch upon this, but commercial java apps all package and deliver every jar they use to avoid inconsistencies with existing jars in the classpath.
That is rediculous. We need a 'registry' of jars and versioning information available to the runtime (especially the installers).
Don't beleive me? Search your hard drive for Xerces.jar ... I have seven and I've never downloaded the Apache package!