Не знаю, будет ли это полезно, но ... некоторое время назад я получал DragDropException, когда мое приложение WinForms запускалось на флэш-накопителе, а не в полной системе. Форма, генерирующая ошибку, не имела функции перетаскивания. Я никогда не понимал проблему, но я видел, что UserControl в этой форме по умолчанию излишне по умолчанию AllowDrop = true. Как только я выключил это, проблема ушла.
Если ваша форма предназначена для поддержки перетаскивания, я бы посмотрел, в каком потоке создается экземпляр формы, генерирующей исключение. Насколько я понимаю, Microsoft реализует перетаскивание на основе COM, которое должно быть инициализировано в потоке STA. Помещение атрибута [STAThread] до точки входа вашей программы выполнит это.