When looking at the testrunner.bat script that comes with SoapUI, in regards to this question, I notice a few things:
1. The %SOAPUI_HOME%\ext path is being added as a "-Dsoapui.ext.libraries" JAVA_OPTS var to the JVM, rather than being added on the classpath. I suspect this is the case because some special class loading probably has to occur for the JDBC libraries. So, you are right, the "ext" dir is not being added to the classpath. I think most 3rd party libraries could be added to the standard CLASSPATH but the testrunner.bat script doesn't support that (see #3 below).
2. The CLASSPATH var that is defined in the testrunner.bat is NOT being passed to the JVM with the "-cp" option when the SoapUITestCaseRunner is being invoked. This is unusual, but I suspect that the runner is retrieving the CLASSPATH var from within the code itself instead.
3. It is really unfortunate that the CLASSPATH var in the testrunner.bat is not defined like this instead, because it would allow custom location of .jar files within projects which don't exist anywhere under the SOAPUI_HOME location.
IF NOT DEFINED CLASSPATH SET CLASSPATH=.
IF DEFINED PRE_CLASSPATH set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
SET CLASSPATH=%CLASSPATH%;%SOAPUI_HOME%soapui-4.5.1.jar;%SOAPUI_HOME%..\lib\*
That would allow definining a PRE_CLASSPATH in another script so, in theory, you would be able to add custom .jars used by Groovy scripts (although I would imagine JDBC .jars still need to be under ext ?)