After some searching I found my own answer. It turns out to be the default behavior of the JBoss Unified Class Loader (UCL). I found a discussion thread about it here
Basically, it turns out that JBoss tried to make some things easier and ended up with some unexpected behavior list wars and ears that can read each others classes, jars, properties, etc. This caused a real problem for me when I tried to deploy to nearly-similar versions of the same web app in two diferent war files.
I am going to try the recommendations provided in the thread I referenced since I am using JBoss 3.2.3 and see if they work.