So after further analysis, it turns out calling a webservice from within the handleMessage() method isn't the issue; however, specifically instantiating a new instance of any webservice during the handleMessage() phase is what causes the problem. Still not sure why this is an issue (guessing it's a bug with APACHE XERCES or JBoss 5.1) but here is an example of how it can work.
private WebserviceInterface ws;
//Assuming this method is only called when not handling a message
public void init()
{
Service service=Service.create(wsdlUrl,qname);
ws=service.getPort(WebserviceInterface.class);
}
public boolean handleMessage(SOAPMessageContext ctx)
{
Boolean outbound = (Boolean)msgContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if(!outbound)
{
SOAPPart document = ctx.getMessage().getSOAPPart();
SOAPHeaderElement wsse = getSecurityHeaderElement(document.getEnvelope());
//Extra Webservice call
Element xmlElement=ws.helloWorld();
Node node = document.importNode(xmlElement.cloneNode(true),true);
wsse.appendChild(node);
}
}