Yesterday I blogged about my experiences with .NET dll hell. Its a new type of DLL hell where certain projects use certain versions of DLLs, and since the DLLs usually have the exact same FILE name, the a newer/older version of a DLL overwrites an older/newer version and one projects references are screwed.
A possible remedy are for the NET runtime to embrace something like the Java JAR files... not sure if the .NET runtime supports multiple versions of the same assembly loaded.