I have fixed this by wrapping c:safe-run-program in a form that changes the process current directory to the one dictated by *default-pathname-defaults* I am not yet sure that this is the right solution.
The problems you were experiencing were due to a contributed patch that shortens filenames: instead of using the full name, just relative to *default-pathname-defaults*. This was done to reduce the size of the command line. I do not know whether that patch was submitted because the user faced a system error with very large programs, but I suspect so. In any case, I do not feel like removing it and the other solution (using an ext:chdir) seems ok. Time will tell.
BTW, ext:chdir by default changes both *default-pathname-defaults* AND the process current directory. It is thus more useful than just setting the variable.
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)