A 'subset' 4-digit system (where all digits are in the range 1-4) would likely be the 'most efficient' hardware construct. this gives you 256 'numbers', which is a close match to your 250 station requirement.
Correct, one approach would be a _little_ PC (e.g. a 386 box), Asterisk software, and an appropriate number of line cards.
And, of course, with computer-based system, you can assign 'dialable' numbers any way you want. You don't have any additional 'mechanical complexity' based on the length of the numbering plan.
The problem is going to be in those 'line cards'. 250 'stations' requires 250 POTS ports on the 'switch'. Now, you _can_ get that many ports on the PC, no problem. A mere 3 quad-port T-1 cards does it. But then you need 11 "D-4" channel banks, or equivalent, to break those T-1s out to the individual POTS circuits.
Then, if this is going to be more than an 'intercom' system, you need a bunch of 'trunk' lines to the C.O. '5 conversations' may be a reasonable 'average' usage (although it strikes me as _low_), but you'll need *several* times more than that to handle reasonable variability in call volumes. probably more like 50 (at least!) to handle 'reasonable' peak calling without having to give fast-busy, due to lack of 'trunk' circuits.