An object initializer doesn’t; a collection initializer does. It’s so that it’s applied to classes which really represent collections, rather than just arbitrary ones which have an Add method. I have to admit that every so often I’ve “implemented” IEnumerable explicitly, just to allow collection initializers – but thrown a NotImplementedException from GetEnumerator().
Note that early in C# 3’s development, collection initializers had to implement ICollection<T>, but that was found to be too restrictive. Mads Torgersen blogged about this change, and the reason behind requiring IEnumerable, back in 2006.