Hmmm...this is hard to choose because everyone were the best versions of themselves in season 2, well, except for Haley. She did make some controversial decisions.
I would have to say Nathan. He was completely different person from when we first met him and he really turned things around. He treated Haley as well as anyone could treat his wife, he was nice to his brother, he stood up to his lousy parents, reconnected with his uncle... And when Haley left him it was hard not to feel for him. He took it a bit too far with alcohol and crashing his racing car but overall it was a really good season for him.
Lucas is a close second, just because he did everything right this season whereas Peyton did experiment with drugs and Brooke did the whole FWB thing with Felix.