One of the most significant features of .NET is the ability to run multiple versions of an assembly side-by-side.
Yes, you can have as many versions of the DLLs on the target machine as you need. Just make sure you put all of the necessary assemblies in the same directory with the application executible (.exe). The .NET Framework will look for the required assemblies in the executible directory before looking at other places on the system (default configuration).
As far as doing this specifically for Crystal you will need to retrieve the previous version assemblies and place them in the appropriate directories.
This was first published in July 2004