Which version of JBoss AS? The specific steps vary with the version, mainly because the messaging provider is different and thus different config files need to be updated.
General steps for 4.0.x and 4.2.x: http://community.jboss.org/wiki/SetUpMysqlAsDefaultDS
General steps for 4.3 and 5.x: http://community.jboss.org/message/196016#196016
Yes, these are not specific to SQL Server, but the major difference is grabbing the SQL Server files for the *-ds.xml file and the messaging configuration instead of the PostgreSQL or MySQL files.
We are using JBoss 5.1 and I've been told that there is a schema for each instance that has to be recreated somewhere else.
Can you tell me how to get that schema from the hypersonic database before getting rid of it.
Each service that uses DefaultDS creates its own schema. I think that only the messaging schema is complicated enough that each database needs its own DDL. In your case you would use the docs/examples/jms/mssql-persistence-service.xml. If you look in that file you will see the DDL used. If you follow the instructions from the links above, you replace the server/default/deploy/messaging/hsqldb-persistence-service.xml with mssql-persistence-service.xml and the messaging service loads the schema at first startup.
When we took out the internal hypersonic database the instance wouldn't start up because of ejb2-timers.
How do I set up the database on sql server so that the instance doesn't have problems invoking ejb2-timers.
I recall in 5.0.0 that there was an issue with the EJB3 timer service (see http://community.jboss.org/thread/64688?tstart=0). I don't use EJB 2 so I don't use EJB2 timers and haven't run into this issue. But I came up with the solution for EJB 3 timers by tracking down who was issuing the DDL and determining what to do to correct that.