I find explaining to people the consequences of their current behavior and how it is working against them to work far better than punishing them. Punishing employees can generate short term behavioral changes but almost never generates long term changes. It's a waste of your time and their time. Convince them how the change in behavior will help them. But....The big thing...you have to make sure if they do change you follow through on how it's going to make things better. If you fail to follow through then you've lost the entire game. Which also means don't infer or make promises you can't keep. It's all too easy to tell someone a certain behavior will help their careers. But I promise you they'll be expecting it to boost things far faster than what you most likely mean. If you can promise specifics don't waste your time pretending to wave a carrot with generaities because it's easier. That just creates hand grenades that will go off when you least expect it.
But yeah, You suck , but your great, and you suck is a naughty word way to do anything. You don't really get buy in on the you suck or the your great, you just have a confused employee.