When you mention latency discrepancies, are you referring to actual errors in the sample start times or the musical differences in attack and timing inherent in certain articulations? (i.e. a fast, quick spiccato vs. a languishing crescendo)
Its not "errors". Some instruments, such as strings, have a lot of sound that happens ahead of the grid. When real players play, they start sliding their bow on the string ahead of the grid in such a way that the transient peak will sound like its on the grid. more or less. There is a lot of timbral goodness contained in that full attack of instrumnets, but the reality is that if you trigger that sound via midi exactly on the grid, then the perception will be that the main transient peak of the attack is late, becuase a real player would be doing certain things intuitively with their instrument to start making sound 10's of milliseconds early, or perhaps even 100's; such that the transient sounds on the grid.
its also not consistent from articulation to articulation. Totally depends. Depends a lot on how the sample library was created also. Some libraries might be more consistent then others in terms of trying to make something that will be playable in a consistent way. I have never measured my VSL libraries yet to see what the situation is with them. Other libraries I have, such as Kirk Hunter, have quite a lot of this attack latency, and the tricky part is that its not consistent from articulation to articulation. Cinematic Studio Strings is particularly challenging in this regard. when I asked Kirk Hunter about it, he said that basically if we want the full sonic goodness of the string attack, then the latency needs to be there.
As Stephen suggested, one way is to learn to play via midi ahead of the grid, so that the attack transient hits the right peak on the grid. This can be done, but I find it difficult to do. Its not the same as a string player doing it inutitively with their bow. You have to strike the key early, by just the right amount. It can be done and then you MUST AVOID quantizing your performance. its particularly difficult if you are playing an instrument with different articulations coming in and out that happen to have differing amounts of attack latency. Which can definitely be the case. Trying to do that intuitively, well I find it difficult to do. But it can be done.
If you want to be able to quantize your notes, for whatever reason...then you'll have to find another way to make them play ahead of the grid. There is currently not any good solution out there for this. There is one freebie LogicPro script custom designed for Cinematic Studio Strings, that does this. You can set negative track delay to move all the notes early...providing all the articulations on that track have the same amount of attack latency. If the attack latency is different per articulation, then you can't really do that allone, you'll need an additional solution like the CSS script to vary how early to play ahead of the grid, per articulation.
I like having my notes on the grid because its easier to read, easier to copy and paste around, etc. But when you start looking closely at the piano rolls of the best sounding mockups, the notes are ahead of the grid. they either played it in inutitively, or they painstakingly moved all the notes just the right amount ahead of the grid using transformers and other tricks.
You can use scripters and such to try to automate this so that you can simply quantize the notes, and then let the scripter play them early...but admittedly, there are not easy solutions for this at this time. Its an area where our tools need improvement.