This happens when the following is in the .sln file:
GlobalSection(ExtensibilityGlobals) = postSolution
MyGlobalProperty = AnyValue
EndGlobalSection
I found that Enterprise Library added one of these. I removed it, checked in the solution, closed then re-opened it, and no more automatic check out.