Typically, the application is written in a special way to support clustering. Part of the development process, includes taking special steps to ensure that web/http (user) session replication will work. What I mean, is that when a user request comes in to the application, attributes are saved in the web/http session. The web/http session attributes are replicated across the cluster, in case the user request needs to fail-over to a different node.
From a development perspective, additional discipline is required to avoid putting program state into the web/http session, that cannot be replicated across the cluster. For example, if the custom application developer, chose to put a JDBC database connection into the web/http session, to be reused by other parts of the application, your not ready to cluster (because JDBC database connections are not serializable). If the application was not designed to be clusterable, it will have to be refactored before you can cluster it.
You might get a hint from looking in the application web.xml file. If you see the tag <distributable/> that is a hint that it might work in a cluster.
Some general doc on clustering is here http://docs.jboss.org/jbossas/jboss4guide/r4/html/cluster.chapt.html.
Thanks for the response, I spoke with the 3rd party and their application is not cluster ready, however, I can load balance but without session replication.