.NET Framework is always backward compatible. This means, if you have an application developed using .NET Framework 1.0 or 1.1, it can still run on a machine which has .NET 2.0 installed. Even though Microsoft claims this backward compatibility, you may come across different issues.
But if you have an application developed using .NET 2.0, but the target machine has only .NET 1.1 installed, it will not work. The reason is, in your application, you may have used classes and methods which are availabel only in .NET 2.0. When you execute, the .NET 1.1 will not have such methods.
The VS.NET is also backward comaptible. If you have a project created using .NET 2002, you can open it using VS.NET 2003. But when you open the project using VS.NET 2003, it will actually convert your project into a VS.NET 2003 project. You will not be able to open the same project using VS.NET 2002 any more.
This is true with Visual Studio 2005 also. If you try to open an old version of the project using Visual Studio 2005, it will prompt you to migrate the project to the new project format.