Não existe nenhuma regra que nos permita saber se se deve escrever s ou z só com base na língua portuguesa, não só entre vogais como também noutros contextos.
O que motiva a escolha de uma letra ou outra é a etimologia da palavra. Assim, escrevemos s quando a palavra em questão se escrevia com s na língua a partir da qual a palavra chegou até nós (quase sempre o latim ou o grego) e escrevemos z quando nessa língua se escrevia de outra forma (geralmente z ou c/k). Nestas línguas havia estas grafias distintas porque cada uma destas letras representava sempre o mesmo som e ele era sempre diferente do som representado pelas outras. Nos tempos em que a língua portuguesa se começou a escrever, estas duas letras representavam ainda sempre sons distintos (se bem que por vezes já algo diferentes dos sons greco-latinos que lhes estão na origem).
Apesar das várias reformas ortográficas a que a nossa língua já assistiu nos dois lados do Atlântico, a particularidade de termos estes dois grafemas para o mesmo som, que provoca inúmeras dificuldades para quem está a aprender a ler e escrever, ainda não se resolveu e provavelmente não se resolverá tão cedo, porquanto ainda existem hoje variedades dialectais em Portugal, nomeadamente algumas na região de Trás-os-Montes, nas quais a estes grafemas correspondem ainda, sistematicamente, sons diferentes: existe ainda uma oposição entre as chamadas fricativas ápico-alveolares (grafadas com s) e as fricativas predorsodentais (grafadas com z, c ou ç). Esta era na verdade também a situação do português do século XVI, por exemplo.
Passa-se o mesmo com as grafias ch (antigamente e ainda hoje, dialectalmente, /tS/) e x (sempre /S/).
Convém acrescentar que nem todas as nossas grafias são etimológicas. Os casos mais destacados de grafias não etimológicas são as dos nomes de família desenvolvidos a partir de antigos patronímicos (ver a resposta anterior /s/ ou /z/ (nos apelidos do séc. XV)). Há ainda outros casos, esporádicos, como «ourives» (lat. “aurifice-“).
Cf. também a resposta anterior: /s/ ou /z/