Try opening the SQLAnywhere DLL using the Dependency Walker (http://www.dependencywalker.com/). That will tell you all of the DLLs required.
Is Windows Server running 32-bit or 64-bit? Is your JVM 32-bit or 64-bit? If 64-bit, is the SQLAnywhere DLL also 64-bit?
Another posibility would be to use either (or both) Process Explorer and Process Monitor from Sysinternals to determin what DLLs are being (or attempted to be) loaded into the java.exe process space. By the way, I would use Process Explorer in the XP box where it is wroking and make note of all the DLLs loaded.
I would also try moving the SQLAnywhere DLL so that it cannot be found just to see if that causes the error message to change.