Дело не в DLL. Она в принципе вообще не нужна, после того, как уже созданы *.mnr и *.mnc, а нужна только для их создания (если, конечно, там только иконки и больше ничего). Проблема в том, что *.mnr и *.mnc разные для ACAD2000-2002 и для ACAD2004. И если 2004 еще поймет *.mnr и *.mnc, созданные под 2000, но переделает их под себя, и обратно 2000 их уже не поймет.
Лучше, конечно иметь разные меню для разных ACAD. Более простой (но более медленный) вариант - это в *.mnl файле написать:
(if (findfile "acadvar.mnc")
(vl-file-delete (findfile "acadvar.mnc"))
);if
(if (findfile "acadvar.mns")
(vl-file-delete (findfile "acadvar.mns"))
);if
*.mns, наверное, убивать и не обязательно, достаточно одного *.mnc. Повторюсь, это более медленный вариант, т.к. каждый раз при запуске ACAD, меню будет сначала компилироваться, а уже только потом загружаться.