My experience is there are no non-commercial JDBC drivers out there for MSSQL which are really good enough for a production system. Of the commercial ones Data Direct's offering is pretty good. Of the open source ones jTDS is nearly there, and far better than MS's own offering.
Microsoft driver is pretty bad. So much so that if you try and prepare two statements on the same connection object it will implicitly open another connection! JTDS driver isnt bad and its free but I have faced few issues with it while working on time stamp fields. Data direct is good and so J SQL Connect. See what fits your needs.