No que diz respeito a regras gerais ao nível do português europeu, podemos, de forma sumária, dizer o seguinte:
o s apresenta o som [s] em início de palavra. Ex.: «sal»;
o s soa ch [ʃ] no fim de sílaba, antes de consoante surda, ou, em fim de palavra, quando a palavra seguinte começa por consoante surda (p, t, qu, f, s, ch e x). Ex.: «pastas pretas»;
o s lê-se z entre vogais ou, em fim de palavra, quando a palavra seguinte começa por vogal. Ex.: «transitivo»; «olhos azuis»; «casa»; Note-se que o som [s] entre vogais é representado por ss, ç, c. Ex.: «assar», «aço», «face»;
o s corresponde ao som [Ʒ], isto é, j, a fechar sílaba, antes de consoante sonora, ou, em fim de palavra, quando a palavra seguinte se inicia por consoante sonora (b, d, g, j, l, lh, m, n, nh, r, v, z). Ex.: «mesmo»; «casas distantes».
Porém, e indo de certa forma ao encontro do exposto pelo nosso consulente, valerá a pena dizer que, por razões de pronúncia regional, o som [s], em determinados dialectos portugueses, apresenta, nas posições mencionadas, apenas duas realizações: o ch [ʃ], antes de consoantes surdas, e o [Ʒ], isto é, j, antes de consoantes sonoras e vogais.
Fonte: Dicionário Houaiss