Currently the LayoutEngine will only process the 'kern' table if the font doesn't have a 'GSUB' table that covers the given script and language. The 'GSUB' table in Times New Roman in Vista covers the Latin script, but the 'GPOS' table does not. This causes the 'kern' table to not be applied.
The correct behavior is to apply the 'kern' table if:
1) There's no 'GPOS' table or
2) The 'GPOS' table doesn't cover the given script and language or
3) The 'GPOS' table doesn't contain a non-empty 'kern' feature.
This will be done in OpenTypeLayoutEngine::adjustGlyphPositions(). If either of the first two cases apply, fGPOSTable will be NULL. To test the third case, we'll need a function that looks in the feature list for the 'kern' feature, and makes sure that it contains at least one lookup.