Browsing the Wiktionary randomly, I bumped into this PIE word, *h₁l̥h₁onbʰos, meaning "deer". Interestingly enough, it evolved into words for "deer" or similar in several languages, but in PG it gave rise to *lambaz, the ancestor of many Germanic-language words for "lamb" ("lamb" included). Even more curiously, the etymologically related synonym *h₁elh₁en produced two synonyms for "elk", *algiz and *elhaz. That is, at least, what I gathered from the Wiktionary. How did this come about How did "elk"/"deer" shift to "lamb"?
We do not have any texts in Proto-Indo-European, so we do not really know what any PIE words meant. We can only deduce this by examining the meanings in the daughter languages. In this case descendants of *el-en- (the proposed laryngeals do not really help us any further) mean “deer” in Armenian, Baltic, Slavic, Celtic, Tocharian, while the suffixed form *el-en-bʰo- gives the word for “deer” in Greek (elaphos, with full grade in the first syllable and zero grade in the second), but “lamb” in Germanic (*lambaz, with zero grade in the first syllable and full grade in the second). It has been suggested that these all go back to an IE root *el- “brown”, in which case the original meaning could have been “brownish animal”, later narrowed down to either “deer” or “lamb”. Wild sheep are typically brownish, not white.
It's worth looking at Krzysztof Tomasz Witczak's article "A New Look at the Etymology of Germanic *lambaz". This can be found on www.academia.edu . He believes the word originally referred to a species of wild sheep, probably the mouflon, and probably the young of it. In areas where the wild sheep was wiped out (most areas) the name was transferred to another animal, either wild such as the deer, or domestic, such as the farmed sheep.
The answer given by fdb is excellent, I just want to expand some more on the notion of semantic change. The fact is that semantic change is unpredictable, and in any way comparable to the regularity of the phonological change, which was the first impulse for Comparative linguistics to become a science. So far, none of the proposed frameworks for the description of the semantic change has been convincing enough, notwithstanding some interesting attempts (see here). As long as there is no general rule, there could not be any rigorous answer to a question like yours (i.e. why, and how, a certain meaning changes at some time).
If you read an etymological dictionary of whatever language extensively, you will realise how frequent are the cases of abrupt and seemingly unnatural semantic change. Nonetheless, comparative linguistics has systematically used semantics as a heuristic tool:
- First, we observe that some "same meaning" words from different languages show regular phonological correspondences. (Let's pretend that such thing as "same meaning" really exists). For example, all the IE languages attest a word for 'mother' coming from the PIE root *méh₂ter.
- On this evidence we establish some phonological patterns and generalize them to all, or most, of the remaining lexicon.
- Then it comes out that in Albanian there is a cognate word motër coming from the same PIE source but meaning 'sister' rather than 'mother' (see here). Is this a problem? No, it's not, since we know how labile semantics might be.
- Therefore, once we have established the general patterns of the phonological correspondence, semantics looses its relevance and can be simply ignored when there is apparently an unexpected or unlikely semantic change.
- This implies that we can also have cases of semantically unrelated words that are, however, cognate, provided that their phonological form justifies such hypothesis.