What provokes a sound shift?

From: Joao S. Lopes
Message: 68536
Date: 2012-02-10

What provokes a sound shift? Is there any clue?Any good hypothesis? Why, for example, a sound <s> becomes <s^>, or <a> becomes <o>? A hypothetical homogeneous population isolated from foreign contact would develop sound shifts, or it is triggered by contact between substratal and superstratal levels? Why in some languages *l > *r, while in another ones the shift is the opposite, *r>*l  ?

JS Lopes