Iowa, SC, and Washington were never serious title contenders the years those players won NPOY, but they were still one of the top teams in their respective conferences. Washington was third in the PAC-12 and was in the 10-15 range nationally. SC and Iowa both finished second in their conference and were top 10 teams, though on the lower end. So all three players were still on teams that were quite good.
In regards to Clark, who was brought up earlier, Iowa was a middle of the road Big 10 team this year. They have come along nicely near the end of the season and are playing like a top 25 team now, but there is a difference between the teams of those three previous NPOYs and Iowa this year.
I agree that the NPOY should not have to go to the best player on the best team or even the best player on one of the best teams, but it usually goes to a player who is on at least a top 10 or top 15 team.