As soon as I found out about his issue, I immediately suspected that he had glute and hip flexor issues. Thus, I checked his glute function and sure enough, it sucked. Then, I checked his hip flexor length and pretty much all of his flexors were very stiff and even short, especially psoas and tfl. This leads to the situation I've discussed previously, anterior tilt of the pelvis. The reason his femur is impinging is because of the fact that his glute is not pulling his hip into full extension because of the position he is in. His hamstrings try to extend his hip but without the help of his glute, it cannot be extended fully and properly and impingement comes about.
What are we going to do to make things better? We are going to get some length in his hip flexors and get his glute firing on all cylinders. This will allow his glute to effectively pull his hip into proper extension, improve his running economy, get rid of his pain and problems and set him back on the road to record times. There are also some other things going on such as pelvic rotation and other issues up and down the kinetic chain such as ankle stiffness and shoulder imbalances.
This condition CAN result from bony abnormalities and various pathologies and in these cases, surgery and physical therapy may be necessary. In many cases, muscular imbalances can be the root of the problem and with some proper training, symptoms can be resolved nicely.
If you drive a car that is out of alignment long enough, eventually something is going to break down and you are going to find yourself stuck in the middle of nowhere on the side of the road hoping that you don't get stuck hitchhiking with some loon. You can think of the body and running the same way. If you run long enough with your body out of alignment, eventually something is going to give and you won't be running very far anymore. So if you must run, do yourself a favor and get your body a tuneup once in awhile. It will save you lots of trouble down the road.
You can read more about running issues here.
Check out a