I and others have observed that when you set a movie's rating that the value is sometimes recorded as a zero. I have done this both through the web and through the API. I haven't debugged what conditions cause this to occur yet. It might occur when you have rated more than the max number of movies allowed per day (I think around 6). In any event, zero values can skew the results quite a bit.
As I see it there are two problems: 1) Why the site stores a zero instead of the intended value 2) When a user sets a value, any previous value that the user gave for that movie should first be deducted from the average movie rating before adding the new value. This will prevent a user who votes multiple times from skewing the average. It will also allow for a user to fix an incorrect value be simply re-voting without having to inflate their rating so that when averaged with their 0's will come out to the right number.