Just before the Kurukshetra War, after Bhishma was made the commander of the Karuava army, he enumerates the warriors and classifies them based on their strengths. Bhishma had his own reasons (based on his judgement) to enumerate the warriors and their classifications. When it was Karna's turn, he rated him a half ratha. His judgement of Karna (as a half rathi) was ably supported by Drona. According to Bibek Debroy's English translation of the the critical edition of the Mahabharata, Bhishma's reasons for calling Karna a half ratha are:
Karna Vaikartana is harsh, boastful and inferior. He is your [Duryodhana] adviser, leader and friend. He is insolent and has been extremely uplifted by you. O king! He is not a full ratha. Nor is he an atiratha. Because he is always generous, he has been separated from the divine earrings he was born with. Because of Rama’s curse, the words of the brahmana and because he will be separated from his implements, it is my view that he is only half a ratha. When he meets Phalguna, he will not be able to escape with his life.
Enraged at this, Karna refused to participate in the war as long as Bhishma was in command.
Going further, Karve had a different perspective: A ratha (car-warrior) fights standing in a chariot (ratha). They also know how to drive a chariot. Krishna, Bhishma, and Arjuna knew both - driving and fighting. Karna on the other hand, never knew how to drive a chariot. Interestingly, he was brought up the Sutas, who were mainly charioteers by profession. It is said that in order to 'effectively' shoot the arrows from a moving chariot, one needs to know the nuances of chariot driving. Karna seemed to have lacked this skill completely.