Jason:
Not sure if this is a solution for your environment but thought I would share it just in case.
We use translation patterns in separate partitions to accomplish 4 digit dialing for intercom and other internal destinations, then prefix digits to the number for internal match.
Example:
internal number 612.555.8888
7-digit dial plan, 9 for external access
translaiton pattern for selected partition containing 8888 translated to 555.8888 inside that partition.
gateway access permits dial-around (through PSTN) by keying 9.612.555.8888
Abbreviated dial may work for you as well, depending on the number range you are using to translate speed dials.
http://www.cisco.com/en/US/customer/products/sw/voicesw/ps556/products_administration_guide_chapter09186a00803edb46.html#wp1082897
Am I understanding the question properly?
Let me know.
Tom