they do give you a new phone with 2months left, once i wanted to cancel my contract because orange was doing unlimited text and 02 wasnt at the time. i complained and wanted to leave at which point i had 2 months left or even 3 months, they didnt want to lose me as a customer to a rival operator so they offered me a new phone and a better contract.
just say you want to leave because orange or vodafone have better contracts with better phones, they might ask you what phone it is you want from that other company, say the one you want and they should give it to you.
good luck!!