I\'m looking for real world best practices, how other people might have implemented solutions with complex domains.
I would say that the best use would be when you need to plug in different equality rules for a certain algorithm. Much in the same way that a sorting algorithm might accept an IComparer, a finding algorithm might accept an IEqualityComparer
IComparer
IEqualityComparer