ICollection is basically IEnumerable + Count and CopyToArray, so I used to use it whenever I wanted to give a client of my code a read-only
Ok, if I don't like sth I look for an alternatives. So I googled around for a third party collections libraries and found PowerCollections (http://www.wintellect.com/powercollections/) and C5 collection library (http://www.itu.dk/research/c5/). While PowerCollections complements rather than replaces System.Collections.Generic namespace, C5 library can be used as a complete replacement of the standard collections library.
What I like the most about C5 is that it introduces fine grained Interfaces representing various features of a collection. To name a few:
I havent used C5 in any serious development (not only because it is in prelease version and the home bage haven't been modified since 2004) but I like many of the ideas implemented in it.