It seems quite clear that the Proto-Indo-European language on the late stage of its development used only one spirant sound. This is not typical, by the way, for modern Indo-European tongues: the majority of them is much richer in spirants. English, for instance, has got seven of them: [s], [z], [f], [v], [q], [ð], [h]. For today's languages of the Indo-European family it is habitual to have voiced and voiceless pairs of spirants: so it is even more interesting to find that Proto-Indo-Europeans used the sound [s] widely without its voiceless counterpart.
Still, some traces of [z] as an allophone of [s] was noticed in several Indo-European words. Usually it occurs when [s] appears right before any voiced consonant - which was not possible in roots, but only in root combinations. One of such combinations is *ni-sd- meaning 'a seat' composed of two roots: *ni- 'bottom', and *sed- 'to sit', the latter having a zero grade of the ablaut. Indo-European cognates make it evident that [s] here was actually pronounced like [z]: Lithuanian lizdas 'nest', Slavic *gnezdo, Old Indic níd.as < *nizda- etc.
The reflection of the Indo-European *s in the word is one of the most complicated moments in IE phonetics, mainly because the neighbouring sounds influence it very much.
The Indo-European [s] was not too stable at the beginning of the word, it was weakened in Iranian, Armenian, Greek and in Brythonic Celtic languages turning into h, a guttural spirant. It did not happen, however, if *s was followed by p, t, or k - in these cases it was preserved everywhere (e.g. Latin sal = Greek hals 'salt', but Latin spondeó = Greek spendó 'I sacrify').
Another process which Indo-European *s undertook in the process of its development was 'rhotacism', under which it became r mainly between vowels. This happened in Italic languages (Latin, Umbrian), Germanic, sometimes in Anatolian.
Different Indo-European dialects demonstrate the transformation of *s after such phonemes as *i, *u, *r, *k: in Baltic, Indic and Iranian it becomes , in Slavic x [kh] (Greek tersomai 'I get dry', but Indic trs.yati 'he is thristy', Lithuanian tirtas 'dry', IE *blusá 'flea' > Slavic *blüxa). Though this feature did not exist in the Common Indo-European language, it was rather wide dialectally - its traces are noticed in Armenian.
Another mystery of the Indo-European studies has always been the problem of the 's-mobile', which in some dialects disappears in the initial position before p, t, k, m, w. For example, Indic paçyati, Avestan pana- are cognates with Latin speció, Greek skeptomai, Old High German spehón 'to see'. Moreover, this very *s does appear in Indo-Iranian as well in Sanskrit paspaçe 'saw'. Among the supporters of the traditional phonology, this peculiarity was explained by the theory that *s- was a sort of a prefix to the root. However, this kind of prefixation is not typical for Indo-European at all. Another hypothesis was introduced within the glottalic theory: another phoneme, *s', a palatalalized variant of *s, existed in Proto-Indo-European. According to this point of view, the palatalized *s' coincided with *s simple in the majority of dialects, or could disappear in certain positions in Indo-Iranian. Another proof for its existence is the compaison between Hittite and Luwian, where sometimes the Hittite s corresponds to the Luwian t: Hittite akuwa = Luwian tawi 'eyes'.
The set of spirants is completed, as the glottalic theory suggests, by the labialized spirant *sw which again produces sometimes strange correspondences in various Indo-European dialects. A lot of words are well known for the reflection s - sw at the beginning: Gothic swistra, Avestan xvangxar = Latin soror, Lithuanian sesuo 'sister', or Galuish suexos, Avestan xva = Latin sex, Gothic saihs 'six'. This is definitely not the loss of *-w- - in this case we wopuld not have seen such innatural reflections as Indic ks. or Avestan x. Still, the question of the labialized spirant in Proto-Indo-European is a matter for discussions.
The same can be said about the whole system of spirants in the Proto-languages.
Anyway, it is quite clear that at the moment right before the split of
the Indo-European language,. it possessed only one *s. Later,
the number of spirants grew already in separate Indo-European dialects.