Assuming all of your JVMs came from Sun, and are at the same release level (e.g., all 1.5.0_10) they should all behave the same. Therefore, without a stack trace showing the problem, it is impossible to diagnose (for example, I could assume you are getting a class not found error and give you ways to correct that, but if that is not the error you are getting it would do you no good).
Also, if the error in a stand-alone client application, or is it happening within the application server?
For example, i have two different versions of the CGLIB library in my Webapp. Thats not correct, i know. When the wrong version is loaded, a "CGLIB enhancement failed" exception is throws. On windows or debian no exception is throws, but when i deply the war file on Suse the exception is thrown. The installation is absolutely identical. Yes, i could could delete the wrong library version, but there seem to be more problems which don't throw an exception.
So the question is, why doesn't the installation on Suse behave like the installation on Windows or Debian?
You could try setting the -verbose:class JVM option, that should show you which jar file each class is loaded from. That might give you some clues.