The starter drive has already been mentioned, and it's the most likely cause. However, here's a sneaky one that most folks overlook. Check out the shift fork that connects the solenoid plunger to the starter drive. The pivot pin, and/or the two fingers that transmit the movement to the starter drive can get worn to the point that the solenoid switch gets made before the gear engages the flywheel. It's not uncommom to find material welded onto the fingers of the shift fork on a rebuilt starter.
Jerry