I think the majority of customers are fair tippers. If you show up, do your job and do it well, you will be compensated. I put myself through 6 years of college & university by waitressing and I never felt that I was underpaid. Mostly it was great. For every person that doesn't tip is a person that is overly generous. It all evens out... so long as you do your job well.
I worked at a restaurant where we didn't have sections. The servers would wait on whoever they wanted and divy it up. There was a couple that NO ONE ever wanted to wait on. Elderly, never tipped and needed lots of attention. After awhile, I would just naturally take them because no one else did and they were pleasant enough, if not very needy.
One day as they were leaving, the woman, (who was a handfull at times) slipped $2 into my hand as she left and thanked me for always being 'their' girl. They would continue to leave 50 cents for me afterwards (they usually never tipped anyone) and I always remembered how good that felt. I had a bond with them and when I left, they gave me $5. More importantly, I remember how much appreciation they showed me.