Ok, we see the problem now. Both your systemdrives are c:\. So the EnvironmentVariableRuleHandler will not kick in. When source has content on d:\ which is not the systemdrive, msdeploy will try to move it to d:\ on the destination. Since you dont have a d:\ on the destination to write to, it will fail.
In order to workaround this, you will need to use -replace parameter in the following manner.
msdeploy.exe -verb:sync -source:metaKey=/lm/w3svc/1,computerName=machine1 -dest:metaKey=/lm/w3svc/1 -replace:scopeAttributeName=name,scopeAttributeValue=path,targetAttributeName=value,match="d:",replace="c:" -verbose
This will ensure that all your content from d:\ is transferred to c:\ while preserving siteids.