I have to say season 5 was one of my favourites for Haley. She had a lot on her plate on that season and we saw a whole new side of her.
Starting with the whole Peyton thing, I do think she could have approached that situation in a softer way instead of just yelling at Lucas and Peyton. I know some people start saying she was a hypocrite because "she kissed Chris Keller in season 2" but I don't think that's a very fair thing to do because that mistake of hers was a long time ago and is/was dead and buried and she certainly learnt from it. She didn't want Lucas or Peyton to make the same mistake she once did. Just because you did a mistake in the past that doesn't stop you to condemn something similar in the future, especially since Haley has always recognized what she did in season 2 was wrong.
Haley was friends with Lindsey at that time and, as a friend of Lucas, Peyton and Lindsey, she thought what LP were doing was not good for any of them and I think it was clear she just didn't want them hurting themselves and Lindsey.
She was just being a good friend to me, she never rooted for Lindsey or Peyton nor did she like one more than the other. As she said in 5x18 to Lucas, he could choose whoever he wanted to, Lindsey, Brooke or Peyton, she just wanted him to settle down and stop lying to himself because he ended up hurting other people in the process. As for the way she did it, I think it was just a result from what was going on in her life at the moment.
Nathan IGNORED her and their son for 4 months straight. That hurt her a lot and it was obvious she was still healing from that when Carrie showed up. Then, when they were still recovering and trying to get their marriage back on track, he lets the nanny flirt with him and all the other inappropriate things she did and he didn't tell his wife a thing about it, not even a single word. He let the nanny disrespect and step over his wife by letting her swim naked in the pool when he more than knew what Haley thought about it. Carrie got in the shower with him because Nathan let her. He might not have wanted to do anything with her but he certainly didn't "push her away", he never put her in place and that's why the shower incident and the kiss happened.
Haley wasn't upset that Carrie was in the shower with him. She was upset and angry that he stayed quiet about it and never told her anything about Carrie's advances on him. I don't blame Haley one bit for the way she acted towards Nathan in season 5. He deserved everything he got and I personally think she even forgave him way too fast, imo.