IDEs vs source control
There is, I think, a fundamental disconnect between IDEs and source control systems. Each IDE has a set of ever-changing documents that litter the filesystem for each project.
Further, too often these project files are not relatively rooted, meaning that another developer may not be able to use my well crafted project files unless that user has the same directory structure as I.
Finally, all too often, just opening a project in my IDE results in several project files being changed, and a root-based checkin will break the build for any other developer.
So, ultimately, what is the best practice for dealing with project files? The only really viable option I see is to ignore project files complete, but that inevitably means that booting up a project on someone else’s machine or environment is expensive. My experiences with a complex J2EE project under eclipse requires at least an hour or two of build / tweak / rebuild on a new machine.