When a contract is added to a student record, allow the tuition field to override the tuition amount in the contract. Maybe make this a setting to "allow individual contract tuition override", or something.
There are always a few "special" students who have one-off tuition amounts. For example: an exchange student, here for three weeks, and our agreement with their sending school specifies how much may be charged.
Creating a whole new category of contracts for one student is both ridiculous and makes it very difficult to manage. Having a contract category for "Exchange Students" would make much more sense.
We pro-rate our tuition for students who aren't here all year. We just change the tuition in the student's individual contract after we generate the contract. It seems to work.