The first time a build is run, any pre-scm shell commands will fail.
This is because the shell scripts use the workspace as the current working directory.
It doesn't seem to be possible to work around this by creating the directory- the create directory commands will also fail due to above.
During the SCM phase of the build, the workspace is created, and so the 2nd and subsequent builds will pass. In an environment with a lot of build agents (that get re-imaged), this issue creates a lot of headaches for me.