Потому что, когда какой-то другой API / код (отличный от вашего) хочет сравнить ваши пользовательские объекты / типы, тогда IComparable предоставит им реализацию сравнения независимо от того, какие у вас объекты. Они просто проверят, реализует ли ваш объект IComparable, и если он это сделает, то вызовут сравнение и отсортируют их. Некоторые сценарии, например, когда ваш пользовательский список объектов привязан к сетке, затем, когда вы нажимаете на заголовок столбца для сортировки объектов, тогда сетка будет выполнять сортировку путем сравнения.