Hi @charlie
This is a very interesting question and one which does not end with an easy solution.
Personally, I have created a similar interface by creating a new field type from scratch and storing all the postcode data in a table. You can find this kind of data from a google search and is widely available for free.
Most checkout software swaps the order of fields around and after selecting a country, the city dropdown is populated with AJAX data. Perhaps this is something you could think about coding?
Good luck with the field.
Cheers
E