ObservableCollection<T> is the default implementation, ie: wouldn't it be a bit strange to create the interface INotifyCollectionChanged and not have a default implementation?
Also, you would implement 'Moo' in your case as a Collection<T> not List<T>.
I believe ObservableCollection<T> also supports property change notifications as well.