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