This was because the domain account did not have access rights to the physical location of the database files - distribution happened to be on a different disk. Once...
When I switched SQL Server Service accounts from Local System to a domain account I had the same problem. Switched it back to Local System and everything carried on...