This video shows a water drop effect implemented using WPF animations and a custom shader. It's written using .NET 4.0 in which support for shader model 3.0 was added. You could probably do the same thing in .NET 3.5, but it's a pain having shader instructions limited to 128 or whatever the limit was. It could pretty easily run in Silverlight 3 or later with the usual WPF->Silverlight mods.
There are two parts to achieving this effect, the shader and the animation. The shader is the canonical ripple effect and is common enough I won't post it here.
However I've posted animation below - it may be helpful because you have to tweak things a bit to get a more organic look.
The objects are bouncing off one another using a simple physics model I added based on the Farseer engine.
Note one of the objects is a working analog clock which continues to run while the water drop falls on it. One final trivia: The coin is a $3 gold piece that was in circulation sometime around the late 19th century. It's worth a bit more than $3 now ;).
This is the shader animation, just throw it in a resource dictionary and fire off a trigger on mouse or other event:
<Storyboard x:Key="waterDropStoryBoard">
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Amplitude"
BeginTime="00:00:00" >
<LinearDoubleKeyFrame KeyTime="00:00:00" Value="0" ></LinearDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Amplitude"
BeginTime="00:00:00" >
<LinearDoubleKeyFrame KeyTime="00:00:00.25" Value=".25" ></LinearDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Amplitude"
BeginTime="00:00:00.25" >
<EasingDoubleKeyFrame KeyTime="00:00:03" Value="0" >
<EasingDoubleKeyFrame.EasingFunction>
<CubicEase></CubicEase>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Frequency"
BeginTime="00:00:00" >
<LinearDoubleKeyFrame KeyTime="00:00:00" Value="0" ></LinearDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Frequency"
BeginTime="00:00:00" >
<LinearDoubleKeyFrame KeyTime="00:00:00.25" Value="100" ></LinearDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Frequency"
BeginTime="00:00:00.25" >
<EasingDoubleKeyFrame KeyTime="00:00:03" Value="0" >
<EasingDoubleKeyFrame.EasingFunction>
<CubicEase></CubicEase>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Phase"
BeginTime="00:00:00" >
<LinearDoubleKeyFrame KeyTime="00:00:00" Value="0" ></LinearDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Effect).Phase"
BeginTime="00:00:00" >
<EasingDoubleKeyFrame KeyTime="00:00:03.0" Value="20" >
<EasingDoubleKeyFrame.EasingFunction>
<CubicEase></CubicEase>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
</Storyboard>