Ian,
Personally, what I do for customers in this situation is start their extensions with a 1 instead of a 0. That way if your DID range is 0100 to 0199 let's say, then the extension numbers would be 1100 to 1199. As the DID and extension do not have to match due to the routing tables then we could in theory change the extension to anything we want except numbers starting with 0. I have also had customers with 7 digit extensions, which basically means that their DID and Extension are the same in that we use the office code and local address as the extension, example 678-3040 would be ext 6783040.
Hope that helps out.
Thanks,
TE