I agree that Snape is a really good example. It's amazing how adored he is within Harry Potter fandom.
I've written two "negative" characters before, and been asked to soften both. For the sequel to my first novel, I wrote from the POV of a supporting character in the first book, who happens to be the high school's ruling bitca. It was really important to me, when writing the second book, not to change the way she acts at all, but I ended up humanizing her through (a) vulnerability, (b) acknowledging the fact that her inner monologue wasn't all cattiness, all the time, (c) emphasizing the soft spots that she does have (particularly one of the younger characters), and (d) giving the reader a glimpse into how she came to be who she is now. I also played up themes that I feel like a lot of people can relate to- like trying to be who you think you're supposed to be, rather than who you are, and growing up and out of relationships that used to mean a lot to you.
My second character wasn't what I would call negative per se, but she was a real smart mouth, and she's quick to make judgments about people. A lot of her likeability factor comes from humor, and from the fact that she's hard to win over, but very loyal once someone has managed to win her over. She's also aware of her own faults, and is as likely to make sarcastic comments about herself as anyone else.
I think some of the best examples of making a "negative" character positive come from television shows. Julie Cooper was a huge villain in the first season of The OC- she was shallow, mean, tried to have her daughter committed, married for money, etc, but as the seasons went on, she became one of the characters on the show with the most depth. She's certainly one of my favorite characters on the show. Another fabulous example is the Addison Sheppard character on Grey's Anatomy- she was completely introduced as a villain-type, but in a single season, they turned her into one of the most endearing and relatable characters on the show. They did this in several ways- showing her own heartbreak, showing her in her soft moments, showing that she had very real emotions and that she wasn't just some Machiavellian mastermind- and, most notably, through a really humorous scene in which something comically bad happens to her and she literally asks if she's suffered enough for her sins now. Cordelia on Buffy is another great example. And, since I mentioned Grey's Anatomy, Alex is another really jerky character who's still oddly compelling.
Another thing that I think can be key is having a really likeable character who likes and forms a bond with your character. This helps the reader in two ways- first, it lets them see that a really nice person could see something good in your character, and it softens your character by showing that they can come to care about someone the reader likes.
And, olmue, I have MORE than hope for Snape. I'm of the belief that his most recent actions were part of a master plan and that they were the ultimate sacrifice on his part, rather than some kind of sin.