Please see http://github.com/elliotcm/light_mongo-rails for a tidier way of using this with Rails 3.
This uses ActiveModel::Naming, which in turn requires ActiveModel and ActiveSupport to be present if you use the ActiveModelCompliance plugin. This shouldn't be a problem as if you need compliance you will have ActiveModel and ActiveSupport around anyway.
There is currently no useful difference between a new record and a destroyed record. As such, #new_record? and #destroyed? are essentially synonymous.