Costs will be relative to what is available in your area and what you have for a PBX. As mentioned there are hosted PBX, (your networking gear will need to prioritize VOIP traffic, redundancy and battery backup on your networking gear). If your PBX supports it and your provider supports it you could do programmed ANI. If your phone service supports it you could do PRIs and DID and assign numbers to each extension.
I was wondering when Vt was going to get serious on this. I think we will see a flood of investment in phone systems this fall.