Nun ja, eigentlich sind die Versionen an sich schon abwärtskompatibel. Das problem ist nur, das man gern ein paar Features aus .NET 4.0 benutzt (Windows 7), die natürlich in .NET 2.0 nicht existieren. Andersrum ist das aber kein Problem.
Innerhalb des Visual Studio kann man per Mausklick die Anwendung gegen eine andere .NET-Version compilieren lassen. Der Compiler für C#/VB.NET ist Größenordnungen cleverer als alles, was ich bisher in Delphi gesehen habe und findet 99% der möglichen Probleme schon zur Compiletime. Läßt es sich also übersetzen, läuft es in der Regel auch.
Dann brauchts, wie im verlinkten
MSDN-Artikel gezeigt, nur die eben getestete .NET-Version in das Manifest aufgenommen werden und schon wird nicht mehr nach "ich brauch aber .NET X.X" gejammert.
Ich denke, das hat man bei Delphi schlicht nicht getan.