The starter drive IS a good suspect, but given they have so little trouble, a better suspect is the shaft of the armature is rusty or the grease is impacted with dirt. Those will cause the drive to stick and not slide into full engagement with the ring gear. Either way the starter will have to be removed. You can look at the shaft then to see if cleaning and relubricating it will help.
While the starter is out, look at the teeth on the ring gear to see if any are worn down. Engines tend to stop in the same place real often, so the same teeth are the first for the drive gear to engage, and those are the ones that will wear down and cause the starter to not crank the engine. When this gets bad enough that it never cranks the engine, the proof is it will engage if you manually turn the engine by hand a little first.
Thursday, November 12th, 2015 AT 7:27 PM