The player needs to be listed high enough on the main depth chart (the one furthest to the left on the advanced depth chart pages) in order for him to be credited with a start - along with marking him as a starter in the player settings page, and getting into at least one, non-penalty play in the first half.
I had a LB complain about not starting, even though he had played over 90% of each of the games. He was listed as my No. 2 OLB, but No. 4 on the Linebacker chart. Looking through my games, I noticed that I was playing a lot of 4-3 Defenses in the first half, and no 4-4 or 3-4. I looked at the game where he did get his only start, and noticed that I had played a few downs in the first half using a 4-4. When I saw this, I decided to move him up to the number 3 spot on the Linebacker chart, AfterI did this, he was credited with the start (I hadn't changed anything yet in my playbooks/gameplans).