It completely depends upon the nature of the bad service. I’m one of those folks who tend to give service people a huge break. Unless they’ve done something that is horribly egregious (and that is completely subjective for each person) I would probably just let it go. I’m also very undemanding and laid back when it comes to being a customer, so I make it really easy to give me adequate service.
I don’t know your girlfriend, but if she’s with you, she must be sweet and wonderful, but I have seen customers treat service people so poorly that the person simply snapped. My best friend’s boyfriend is one of those people who’s never satisfied with the service he gets and he’s really a boor when he deals with service people. He has ridiculous notions of what it means to be served. So I can totally empathize with service people, and I’ve been a service person myself and I always treated people with politeness and respect and tried to help find another solution if I couldn’t solve the problem on my own.
Now, if they have done something bad and it seems like it was on purpose, or maybe they’re blatantly lying to me, or if they’ve used coarse language or treated me with dis-respect, I might say something directly to the person (in front of other witnesses) right at that moment. Or I might send and e-mail or a letter or make a phone call to that person’s supervisor, or even go find the supervisor and talk to them right then and there.
I have said things out loud to people who have treated other people (strangers) poorly. But I usually only do this if there are witnesses. Sometimes people need to be shamed publicly.