Maybe that didn't make much sense. Let me try again....
Um... YES you should certainly check in both your Solution file and Project files. How else would it work when another dev adds a class to the project?
Yes of course. But what if another dev wants to reference a different version of a referenced dll?
Lets say a project is referencing a release dll in a 'binaries' folder and a developer wants to debug the source code for the referenced dll. So they check out the project for the referenced dll and change the reference so that it points to the debug dll generated by the checked out project.
Now, if this developer checks their project back in then when everyone else checks it out, they'll get compilation errors because they haven't dowloaded the source project.
I guess what I'm saying is that it seems projects contain shared data _and _developer specific data.
I may be way of track here but I reckon there should be a default value for references which are shared and then overides for these values that are developer specific.