DLL Hell is still with us to some extent. This one comes from the school of bitter experience. Don’t think of naming any of your dll’s security.dll. The problem is that Windows already uses the name security.dll, and will not load the corresponding system DLL if yours is already loaded (you can find a fuller explanation over at The Old New Thing).
In my case this caused the following nasty error to pop up when using Integrated Security for authentication on a web service call:
"An unhandled exception of type ‘System.EntryPointNotFoundException’
occurred in system.dll Additional information: Unable to find an entry point named
EnumerateSecurityPackagesW in DLL security.dll"
Of course with hindsight using the name security.dll seems pretty foolish now…