Bueno, es lógico que si no encuentra el archivo no te funcione
para ejecutar un .exe usa WinExec o ShellExecute (mira la ayuda de Delphi si no los conoces aún).
En cuanto al problema con el componente de roman, si te da ese fallo lo que tienes que hacer es restar 1 a la letra de la unidad (sí, restar).
Se haría así:
drive:=Chr(Ord(drive)-1);
Espero que con esto ya esté todo solucionado.
Saludos.