On a 3ivx avi video, I recently discovered a surprisingly easy fix using qt player with QuickTime Pro. Open the movie in QuickTime Player and go to Edit -> Extract tracks, select the sound track and hit Extract. This creates a new audio only movie. Using this, Edit -> Select All and then Edit -> Copy to put the sound track onto the clipboard.
Go back to the original movie and select Edit -> Add Scaled, which will create an additional audio track which, at least with the video I tried this on, is properly synced.
Then to clean up you can use Edit -> Delete tracks and remove sound track 1 (the original out-of-sync one). At this point you can test the result and, if all went well, save the repaired video.

