VSLauncher starts wrong version

I had this same issue. VS 2008 solutions opening in VS2010 when double clicked. This problem went away after first going into VS 2008 and using 'Restore File Associations' then right clicking on a 2008 solution file and choosing open with and pointing it to Version Selector. Prior to this they invariably opened in 2010. Very frustrating. Hope this helps.

Tools | Options | Environment | (big button marked Restore File Associations

The problem was that the SLN files were subtly corrupted. Deleting the files and letting the appropriate version of VS recreate them resulted in a file that the diff tool thought was identical, but was exactly 3 bytes longer. I suspect the problem can be traced to a missing UTF-8 Byte Order Mark. Why VSLauncher is that picky is another question.

ADD: Yes, After opening the new file in a hex editor, I can say for certain that the problem was a missing BOM on the old file. This was tricky to spot because my diff tool apparently does not even see the BOM.