Yes, it might be related to how the surefire plugin forks the tests. You can pass classpath elements to the forked tests, but they aren't passed directly to the jvm. A basic jvm is created, and then a new classloader is created to load whatever things you need for the test.
Maybe I'm wrong, but this sounds similar to a problem that Stale was having with some aop tests, when trying to use the javaagent option. But the problem was that there isn't a way to pass the necessary classpath to the jvm.
I will take a look this week and see if I can fix this and get a patch submitted to the surefire plugin.
I updated the version of the surefire plugin (2.3 -> 2.4.1) and the test failures went away. The newer plugin didn't appear to break anything else, so all the mc modules now use the newer surefire plugin.
That fixed it. I also removed the hack from the older tests. :-)