Well, if the subtitles and their internal distances are correct, though in time incorrectly scaled and perhaps with a constant offset, you only need two measurements (at what times two separate lines in the .srt file actually occur on screen) to decide both the base offset and the scaling offset (linear algebra: for two unknowns you need two independent equations).
http://subshifter.bitsnbites.eu/ takes two such input times and rescales the .srt file. It's real easy to calculate the offsets even by hand, but it's nice to have help rewriting the timings.
Tip: use the first and the last subtitle entries as measurement values to get the best results.
If the texts are still not correct, then you have subs for a cut version or something similar. You can use the above technique on each corresponding portion of the two video files, but it will be more work. It probably beats manually retiming every single subtitle, though.