I hate to admit it, but the worst friend is Willow. And not because of the spell that brought Buffy back, but because she brought a 15 year old (Dawn) to a crack house where horrible things could have happened to her, and almost got her killed. If something worse had happened to Dawn (death, being raped by one of those creepy guys in the waiting room while Willow was otherwise preoccupied, who knows?), that would without a doubt be the end between Willow and everyone in the scooby gang, if Willow even lived to see it. I don't see anyone else doing something so drastic that no repairs could be made. And of course, as Tara is Willow's friend as well as her girlfriend, her mind wipe was completely inexcusable. Willow was a good friend with trying to help and comfort Buffy and Xander though.
Following very closely would be Giles. Like, wth? He has expressed concern over Willow's magic use, he sees that Dawn is literally floundering in this house of adult-children, he sees that Buffy is completely broken and wishes to be dead, and he chooses to leave then?? Bad move Giles. Bad move. If he had stayed, he could have kicked everyone in the bottom, and forced everyone to stop focusing on their personal problems and see that Warren was a threat, and maybe Tara wouldn't be dead, and Dawn wouldn't be further traumatized, and Willow wouldn't be a murderer. You basically screwed everyone Giles! I think it was totally OOC, and just shows how everything is crumbling. (I actually love all of these developments and am glad they happened, but I'm still saying a lot of it is Giles's fault.)
Xander would be next. He judges Buffy harshly for sleeping with Spike, even when he sees what a state she's in. Come on dude! He was not being a good fiance either. Obviously.
I don't think Buffy was a bad friend. She wasn't being the best sister to Dawn, but that's another matter. She's going through her own stuff, and her friends can learn to live without her constant attention for once. She never put them in danger (well except for in Normal Again.) She didn't see what was going on with Willow, but they didn't really see what was going on with her. Communication between everyone was lacking. She was great with trying to help Willow get over her addiction, and helping Xander after his wedding fiasco.
Dawn was a good person as usual, (I don't get you Dawn haters!) minus a tiny bit of shoplifting.
Tara was a pretty good friend, although she could have been more realistic with Buffy about the whole Spike situation. I don't think she was a very great girlfriend though. She let Willow take all the blame for something she was involved in, and didn't try to help Willow with her addiction like Buffy did.
Anya may have actually been the best friend of all. She was a little preoccupied with her wedding, but she recognized that Buffy wasn't okay pretty much right away, she recognized that Willow was acting different, and she tried to speak up and do what she could without crowding either of them. She dealt maturely with Dawn stealing from her. She helped try to save Willow from herself in the last few episodes. She also tried to save Giles. I love her.