I tip based on 2 things: quality of service, and how close my bill was to an even $5 mark. If a reasonable size tip will get me to an even $5 mark, that's what I tip, if it's too low or too high I just end up leaving it at an even dollar. If the service was completely unremarkable, I go about 15%, if the service was ok, and the person was friendly, I tip 20%. If the service was really good, I go up to 30% or a little more. If the service was poor, but it either wasn't that bad, or if it was somehow understandable, I tip about 10%, maybe 15% if it really isn't her fault. If the service was absolute crap, I usually leave just enough of a tip to make it to the next even dollar.
I don't really go to any restaurants like you describe. If I did, I would probably not leave a tip, or leave a very small tip, under 10%. I suspect that the people there receive full paychecks, not like servers in sit-down restaurants who only get paid like $3 an hour and the rest is tips.