In corporate software development, all developers are, typically, using the same IDE running on the same version of the same operating system. In OSS, the team is distributed and providing their own development environment. This can lead to some difficult situations where one contributor checking in code breaks the build for another. I've personally struggled with this exact situation. Every pull from the main branch breaks my build configuration. I fix it, do some work, push back, and then my partner does the same, fixing his build configuration before he can get any actual work done. 

What techniques/tools can be used to compensate for different development environments? Are there specific things that should (or shouldn't) be checked into the repository to help alleviate this?