I can happily say that this method using virtualdubmod to sync sound with video in an AVI file works a treat. This problem had been driving my wife and I mad for months, we were constantly starting and stopping videos to try and get them back into sync. We tried all our video software, VLC, windows media player and powerdvd but always the film would end up like a badly dubbed foreign language movie.
1. Load your completed avi (with out of sync sound) into virtualdubmod
2. Go to File, then 'File Information'. In the video details, look at the length. Compare that to the length in the audio details.
3. Take the difference and multiply by 10 (because we need to know how many miliseconds (thousandths of a second) not the hundredth of a second shown here).
4. Click OK
5. In the 'Video' menu, ensure 'Direct Stream Copy' is selected
6. Got to 'Streams' and them 'Stream list'. There should only be one stream listed there, as 'AVI audio stream 1'. Right click on that stream an ensure 'Direct Stream Copy' is selected.
7. Right click on the stream again and go to 'Interleaving'
8. In the box labeled 'Delay audio track by', enter the number you worked out before (difference between the 2 lengths, multiply by 10).
9. Click OK and then OK again
10. Go to 'File' and 'Save As'. give it a file name (don't overwrite the other file, just in case). Click save.
You can get virtualdubmod from http://virtualdubmod.sourceforge.net/
Click here for video tutorial I cooked up using Captivate and my new fav thing, screen-o-matic!