The shipping can work in the manner you described, but not product prices, so yes this would be custom work. You could use the shipping zones as a guidleline, just look for info on "zones" in the documentation, wiki, faq, etc.