iBatis is certainly easy to map objects to legacy database systems.
More recently, NHibernate 1.2 and 2.0 have a feature set that can make you rethink iBatis.
NHibernate works with composite keys, which are often found in old databases, they are not always pleasant to work with, but support is there for that.
NHibernate can use stored procedures for CRUD operations for entities as well as database representations.
Collections can be custom stored procedures or SQL queries. Collections can use the property-ref attribute if the foreign key relationship does not map directly to the primary key on the other hand.
Some of these functions may get away from nhibernate's performance / power, i.e. Lazy Loading does not work with the ref function (in general?), But in most cases there are reasons for this.
Other points: (which are not actually related to your old database, but can still help in choosing a technology)
The Nhibernate community looks much richer than iBatis. I am on both lists, and NHibernate's support volume is quite large compared to the iBatis group. Therefore, support should be simpler.
The number of contributors / third-party tools for NHibernate is also growing. Things like NHibernate Profiler, Nhibernate Query Analyzer, NHibernate Contrib, Fluent NHibernate to name a few.
Perhaps you can expand on the benefits you think iBatis currently has. NHibernate is certainly quite active lately and has received many new features, many of which help to obsolete / difficult to modify schemes.
And to answer the question, yes, we use NHibernate with outdated databases that have terrible relationships, compound keys, broken relationships. We also have a little code based on iBatis. We no longer write iBatis code though.