Я могу ошибаться т.к. лет 7 не работал с WinForms. Если ссылаетесь на DLL, которая расположена в другой папке, то экзешник при запуске будет искать эту папку с DLL. Если этой папки и DLL там нет то будет искать в папке с экзешником и в системных папках и в папках записанных в переменной окружения path. Что очень удобно если вы хотите показать работу программы на другой машине: копируете всю папку на флешку и не нужно ничего делать.
Как реализовать распределение по папкам. Ручками сделать структуру папок для DLL. Делаете установщик, который создает структуру папок для хранения и закидывает в них DLL. Раньше встроенного в VS шаблона проекта установщика хватало.