The client is always right. Even when they're wrong.
There are different levels of wrongness to consider though, and I've found that my stance is usually dictated by that level.
I'm involved in a design project right now in which the customer wants something really ugly on their website. It won't necessarily impact traffic. From an SEO standpoint it's moot. There are no coding issues. No accessibility issues. What they're wanting is harmless. It's just plain ugly. Is it my job to tell them it's ugly? No, it's not. My job is to make sure they sign off on finished work and deposit the check.
When a client wants something that can do real damage to their site in whatever fashion, then yes, it is my obligation and responsibility to make them aware of this. I won't refuse to do the work though, not unless it's too far over the top or could get me in trouble.
I assess what they want and react accordingly. If they want ugly and ugly is harmless, well, ugly is what they'll get.