It's just how VSS works.
http://www.visualbuild.com/Manual/vssflagstab.htm
"Handling of writeable local files: ...'Skip' will skip any local writeable files, and not replace with the version from the database (the action will also fail in this case since the VSS command-line tool will return a non-zero exit code)..."
Technically, skip means skip and treat as an error, but it's probably reasonable behavior, since the local file may be different from the one in VSS.
You could mark the step to ignore failure or parse LASTSTEP_OUTPUT in the step's vbld_StepDone event and set the status to success as appropriate.
http://www.visualbuild.com/Manual/scriptevents.htm
http://www.visualbuild.com/Manual/systemmacros.htm