Back in 2002, I wrote an article for ONDotNet.com, about .NET's copying, cloning, and marshalling semantics.  I suggested that the role of C++ style copy constructors was diminished, in the face of ICloneable.  Boy, was I wrong...

http://www.windojitsu.com/blog/copyctorvsicloneable.html