Something which I came up against fairly early on in my Capistrano use was the problem of releasing from tags or branches in SVN. My normal development process for a large release is to tag the trunk, and then release from the tag. Then there are other times when I have a long-running branch that I want released as well. These posed some problems for Capistrano because the repository location was baked right into the deployment scripts.

