For example, our sites start off with just a public directory with a single index.html file in it.
When deploying a site for the first time, the public directory stays a directory and doesn't get symlinked to the current release so we do the following manually after the first deploy:
rm -rf public
ln -sfn public_html/releases/1 public
and then everything works fine after that.