A nivel de C++ "estándar" (o al menos tan estándar como Microsoft acostumbra...), VC NET (o mejor dicho, VC7) incorpora la especificación de C y C++ del año 2001, donde se incorporan la Standar Template Library a la Librería Estándar de C++. Los algoritmos están muy mejorados.
Con lo que respecta propiamente a C++ NET, MS le agregó algunas extensiones para que C++ se pueda emplear con código administrado, y por consecuencia, dentro del .NET Framework, lo cuál te da acceso a una plataforma amplia de servicios. El siguiente es un ejemplo usando C++ tradicional y C++ NET (C++ administrado, mejor dicho):
// escribir algo en un archivo
std::ostream strm;
strm.open("algunarchivo.txt");
strm << "Hola enfermera!";
strm.flush();
strm.close();
// con código administrado empleas la plataforma .NET
System::FileStream* strm;
strm = System::IO::File::Open("algun archivo");
strm->WriteLine(new String("Hola enfermera!");
nota que en C++ administrado no es necesario llamar a "delete". Y como estas, hay muchas otras monerías.
Con la llegada de VC 8 en 2005, lo anterior quedó obsoleto, ya que ahora Microsoft creó un dialecto de C++ llamado C++/CLI, que permite también trabajar con código administrado, pero sin tener que usar extensiones del lenguaje. Ejemplo:
System::String^ str = gcnew System::String("Hola enfermera");
nota el uso de ^ en lugar del tradicional * para indicar un puntero. Más información en www.msdn.microsoft.com/visualc
Saludos.