Isn't it all part of Will's character that he has his own set of values that he thinks give him more integrity, but actually get in the way? He doesn't think drugs are cool, he doesn't want to have sex unless it's with the right person, he would rather speak his mind and upset people than keep quiet and get on with everyone. He's actually a very believable character: intelligent, but also clueless.