As alluded earlier, if there is a way, it will be in the outbound rules, but there isn't enough info presented for us to get a good idea. Ideally, if there is a portion of the dial string that makes your internal call unique, then you could use the "prefix" rule. As an example -
You appear to be using 4 digit extensions ("2544") and the user base is prepending "9018" to reach the desired number. Not being familiar with the format, it is not known if the leading "9" is a part of the actual number or a lead-in number to get to an outside trunk. In any event, if the "90182" portion of what they are dialing is truly unique (not a portion that would be used anywhere else), then you could use the outbound rule to strip "4" thereby leaving only the 2544 for the system to dial.
The issue is whether the 9018 is used to reach other outside numbers. If so, then you may need to find the largest violators by looking at the reports and devising other rules by extension that force them into a retraining mode. Find which extensions they dial the most and create a rule for their extension that starts with the entire number they dial the most and block it (them). They will soon get the picture.
Most of my customers hate pushing buttons and the more they have to push, the more the dislike. I tend to think that your folks would follow the same suit, but perhaps what they have done is to program speed dials which include the entire string or are using the company directory or something similar that is causing this to occur.