I have figured out what is happening, thought I would add it here just in case anyone else encounters the problem.
When we build our URL class loader on the client, the URL for the local files is simply a string built in the code (eg file://documents and settings...) from the known install location of the client. The sun code in the JVM requires this to be a correctly formatted URL (ie %20 in it) which it would obviously not be in our case. The problem is actually coming from the sun code, not the JBoss naming code. Instead of building the string ourselves, we now get the URL from a file object which will be correctly formed as required by the sun code.
(In my experience it`s usually something daft like this!)