¿Qué problema resuelve IStructuralEquatable y IStructuralComparable?

Me he dado cuenta de que estas dos interfaces, y varias clases asociadas, se han agregado en .NET 4. Me parecen un poco superfluas; He leído varios blogs sobre ellos, pero todavía no puedo descifrar qué problema solucionaron antes .NET 4.

¿Para qué sirven IStructuralEquatable y IStructuralComparable ?