Мне кажется, что затруднение состоит в понимании назначения этих интерфейсов. В справке по ссылке IEqualityComparer ключевая фраза - это "This is consistent with the Contains, IndexOf, LastIndexOf, and Remove methods of the Dictionary<TKey,TValue> class and other generic collections." То есть смысл этих интерфейсов состоит в том, что они используются библиотечными классами, и поэтому ими нужно пользоваться для поддержки функциональности стандартных коллекций. А поддержка состоит в том, что есть возможность модифицировать поведение стандартного класса для объекта. Предоставляя объекту свою реализацию интерфейса IEqualityComparer, мы заставляем его сравнивать объекты так, как нужно нам, а не каким-то стандартным образом.
Никто не заставляет использовать эти интерфейсы в собственных классах, но их использование обеспечивает некоторую стандартизацию, что является полезным.