Where to collect business logic for Entity models?
You can use the Entity API which allows to specify the class in hook_entity_info(). Then entity_load() will use that class (assuming that you're using/extending from EntityAPIController, not the core one) then it will return instances of the defined class and not dumb stdClass objects. Then you can define your own methods there.

See http://www.trellon.com/content/blog/creating-own-entities-entity-api for an example.

This feature will be in Drupal 8 (already is and core is currently being ported to it).