First, I recommend you create a shared directory that's easy to remember where you will store all of the assemblies that you want to show up in the dialog. For this I chose
C:\Program Files\Microsoft.NET\Third-Party Tools . Although we could argue about the semantics, I think this basically covers anything not included with the .NET Framework, and it is easy to remember and not user-specific.
Next, you'll want to open up that friendly program, RegEdit, and go to
\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders and add a new key, calling it whatever you want. It really doesn't matter what you call this except for when you look it up in the registry. For consistency's sake though, I named it 'Third-Party Tools'. Then you simply need to change the (Default) string value to be the path to the directory you created for this purpose, which is, in my case,
C:\Program Files\Microsoft.NET\Third-Party Tools. See the screen shot below for the complete picture.
That's it! Well, that's all the one-time setup required to have items in the aforesaid folder appear in the .NET Add Reference dialog. But of course, you'll need to add assemblies to that folder for it to be of any use whatsoever. Below is a screen shot of my current .NET Add Reference dialog. You can see an assembly in it that is in this folder on my hard drive, specifically the ASPAlliance.Common assembly. There are others in my dialog that are farther down the list as well.
Now, to add or remove entries from this dialog, all I have to do is add or remove assemblies from the Third-Party Tools folder I created. It's that simple--no more browsing all over the disk to find this or that assembly. All I have to do is drag and drop an assembly into that folder and voila!, it appears for easy selection in this list. Naturally, you can extend this concept and create as many entries into the AssemblyFolders key to accommodate as many of these drag-and-drop locations as you want, but if you do that, you'll reduce the ease of use factor added by using just one location. On the other hand, if you have multiple, side-by-side versions of the same assembly, you may have to create special entries for it.