9 times out of 10 that is because whoever encoded the AVI didn't do a good job. But as to ways to solve the problem...
I use Media Player Classic, which does allow audio shifting in millisecond increments. I believe FFdShow even has audio shifting options. This can solve the problem IF the audio is only offset incorrectly. If the audio gets more off sync toward the end of the movie, then the framerate was changed without the audio's being adjusted (this basically means you are screwed without re-encoding).
Other than that, you can check to make sure your files are getting split and decoded properly. I suggest using Gspot (use Google) to check your AVI files and your computer's rendering path. This might give you a lead.
Good luck

.
BTW: Do you have any Xvid AVI files that do play in audio sync?
Jam it back in, in the dark.