I've managed to fix it, turned out the cable clamp had been bent in slightly (I'm guessing from a fall) and was fouling the main body and limiting its range. It just needed prising out and now it's as good as new.
Thanks for all the replies, mystery solved.