<p>When a system has N tiers, and when using an ORM, how do you send loaded entities across the tiers ?</p>

<p>Do you use DTO ?</p>

<p>When DTO are not used and the entities are directly sent, how do you protect againt the uninitialized lazy loaded relationship errors ?</p>

<p>Note : this is not a "should N tiers be used ?" question. I assume that the system already has N tiers.</p>

Well I don't know if there is a better way, but when we use Hibernate we just turn lazy loading off so that it loads everything.  It obviously costs more to do this, but I wasn't sure how to get away from the lazy loading methods that Hibernate would create.
If a Containers has sets of data that are not used often then they will not be loaded and it is up to the requesting UI Form to call it and send it for update.  (We built update classes to pass all the information together)
In the case of UI Forms that loaded lots of Containers we just make special classes and fill in what we need for them.  They are sort of read-only containers that aren't used for persistence.
There may be better ways.. but I am learning :)