Thanks for that link jaikiran, it pointed me in the right direction.
For those curious, here's how I applied the details from that link to a ejb/war setting:
Create one (NetBeans) EJB project that contains only:
Create a second EJB project that contains:
And then a war project that attempts to make use of the local interface.
The build file for the interfaces project produces a .jar with only the Local and Remote classes (no .xml files or other items), and deploys that .jar file to %JBOSS_HOME%/server/default/deploy
The build file for the bean project produces a .jar with the SessionBean.class file and any other items needed to deploy the bean (i.e. jboss.xml) and deploys that .jar file to the same location as the previous.
Both the bean project and the war project include references to the interfaces .jar (so they can be compiled), but don't package the interfaces .jar into their own .jar/.war files.
Deploy the interfaces first...
Then the bean...
Then the war...
And everything works fine.
Redeploy just the bean project, and everything still works fine - no ClassCastExceptions encountered.
So yeah, thanks again!
PS. In my first stab, both the interfaces and the bean files had the same package - ejb.test. This created problems when it came time for the war file to do its lookup (ClassCastExceptions once again). Splitting the interfaces and bean classes into two separate packages resolved that problem.