I find them a very natural way to extend existing classes, especially when you just need to \"spot-weld\" some functionality onto an existing class.
Microsoft says, \"In
When Borland invented them (Delphi Class Helpers) the guidance already was: "should be used in exceptional situations only".
They have become a lot more accepted (as part of LINQ), but they remain an odd way add functionality. I think Reed has a good answer on why.