If you are an application developer, you definitely understand that sometimes it's a 'pain' for your application if users want to install multiple versions of .NET Framework (may be required for some other applications) because you understand the higher version either didn't exist at the time of coding or 'standard procedures' were NOT followed for upgrade installations. Some enterprises face a huge challenge to deploy higher versions of .NET (as 2.0) if some applications do not run except the desired .NET version, similar to some Java Applications.
"Luckily, the .NET architecture no longer restricts you to such limitations. You can install multiple versions of components on a single server and benefit from their peaceful coexistence by running them simultaneously. Microsoft refers to this as side-by-side versioning", writes Zubair Alexander. He further specifies, "It can be done on a Windows 2003 server, as long as you remember which version is which".