This might happen if, for example, you invoke
nmake in a
shell and it tries to create sub-shells. The problem happens because
when the shell is initially created, the first argument to the shell
is not the directory in which the shell program resides. When this
command.com fabricates a value for its
COMSPEC environment variable that is incorrect. Then, when
other programs go to use
COMSPEC to find the shell, they are
given the wrong value.
The fix for this is to either prevent any arguments from being sent to
the shell when it starts up (in which case
use a default, and correct, value for
COMSPEC), or to have the
first argument be the directory in which the shell executable resides.