Additional information from one of our Windows Media Center developers...
It depends on what you’re going to do, but 90% of the time it’s easier to derive from ModelItem, simply because you don’t have to implement things like FirePropertyChange.
Either one is fine, the difference is mainly in how much work you have to do to fill out the interfaces. Deriving from ModelItem requires a constructor, plus whatever properties you want, and that’s it. IModelItem requires you to implement the entire interface.
When deriving from ModelItem, though, it must be at the root of your tree. Since ModelItem is not a MarshalByRefObject, it cannot be remoted. Also, it’s sometimes better to do the extra work if you want to control your class hierarchy tightly.
Charlie Owen (Microsoft)