ACCTeam, I've had this problem a few times, and I foolishly overstepped the 3-pass line. This was a big mistake because for starters they were a new company (so, not much cash) and I was doing it at a discounted rate anyway.
Because we didn't get it right after the 3rd time they felt that we had messed them around, so we ended up both unhappy. Infact it was the other way around, but the client always has the bad reputation card in their pocket...
Usually, after the 3rd time, if they're still not happy with it and you feel the deal is a bit weak, don't let them take the piss (as they will resent you for it afterward).
By this I mean, if you need to, up your price. If you think the deal is becoming unrealistic, give them an unrealistic price. It's very unlikely they'll accept an unrealistic price as usually they'll get the hint. If they accept the bogus price and you're still not feeling too safe, just say it'll be another 2-3 months till you can fit them in.
This way they'll probably go off and get somebody else to do it, realise that its actually not that straight forward and probably come straight back to you.
The worst case scenario is that they'll go off and tell 10 people that you're overpriced... Which, in theory looks better than having a reputation for producing substandard work.