I too had this same problem during installation. I remember getting the rail in place and only one of the end caps would fit, not both. I had to un-screw the rail (just loosen the screws) and slide the full-length plastic piece under the rail to make room for each end cap at each end (keeping in mind the end caps are different lengths). There should be slots in the plastic piece to allow this movement, but the chrome rail piece should be locked in position by the guide pin at the center so this piece can't be moved. Once you have made this adjustment (may take a couple of times to get this adjustment just right), secure the screws back tight and position the end caps. Insert the end of the end cap nearest the chrome rail first as tight as you can get it by merely sliding it in with the plastic guides. Once it is tight, take your fist right where the end cap curves down and 'pop' it down into place. It might take a decent amount of force to pop it down, but you should hear it 'snap' into place once it is finally secured. I couldn't get mine perfect either, and I am definitely a perfectionist. I still have a few small (1/32") gaps where the caps meet the chrome rail, but I can live with that. A couple months after installation and I didn't even really noticed it. Good luck, I hope this helps.
By the way, be careful with the edges of the painted end caps. The paint can easily chip away during installation if you're not careful.
You can see my final install pictures here...
http://www.chevroletforum.com/m_30884/tm.htm