I like what IRL does with different tire compound.
Red - lowest compound
White - Middle compound
Blue - hardest compound
Each car has to run each compound tire under green for a certain number of laps. It does not have to be the same set for all the laps.
I have also mention on here below that nascar needs to have bigger differences between races. It could be a chicane or bus stop on the back stretch. It could also be a race where only one tire changer can be over the wall at one time.
The problem is that the best teams in nascar are so good that nascar needs to create more opportunities for these good teams to mess up during the race making the races more "challenging" for those teams.