ORIGINAL: MArwood
This faster computer allowed me to lower the audio buffers. I don't exactly know why lowering the audio buffers would change the timing accuracy of midi, but it did.
In the time period during which the "drift" issue has been resolved for you, have you also upgraded to a new version of SONAR?
In the past, certain audio interface manufacturers had issues with their ASIO drivers, where timing would be accurate under certain hosts (i.e. Cubase), but SONAR chose to access the ASIO driver in a different way (though still perfectly legal according to the ASIO spec) which would introduce an additional timing offset into audio, proportional to the buffer size. On some people's systems this would also affect MIDI timing, with issues similar to what you're describing.
Under these circumstances, as you noted, lower buffer sizes could improve timing. But another improvement was due to the fact that newer versions of SONAR (definitely S6 and persumably S7, though I haven't upgraded yet) allow for an ASIO buffer offset in the audio options - and SONAR is usually able to automatically calculate what that offset should be, based on information it receives from the driver. So the timing issue simply disappeared on some people's systems, once SONAR incorporated this functionality. It's been a while since this was all discussed on the forum, so I don't recall whether there was another, separate fix to SONAR for the MIDI drift issue as well.
If I'm understanding your post correctly, though, what you were experiencing was a general kind of "drift" in one direction time-wise, as opposed to the rubber-band-ish "jitter" we've been discussing here. On your system, when you were experiencing the problem, were some hits earlier than expected and some later, or did everything get progressively later and later?