Whenever I do a check-in, I always check in from the root of the project... i.e. check in all the files in my working copy, so after the check-in the source control repo contains exactly the same set of files that I just finished testing in my local copy. I also make sure my source control is set to flag local files that are not under source control. In general, there are none of these files... if there are, I either add them to source control or mark them as "ignored". I also check in all my changes together in one check-in.
A lot of colleagues check in much differently. They carefully select each file to check in, as if they are a master jeweler selecting only the very best gemstones to set into the royal crown, and they check in each one as a separate check-in. They rely only on their memory to figure out which files need to be checked in, or especially added to source control.
The results are quite predictable... frequent broken builds because they forget to add their new files to source control or forget to check in a changed file (especially changed project files).
I have mentioned this to them and they never seem to change. When I mentioned it to the team lead he said, "this is just a different way of working". To which I may respond: What if I want to drive my car with my eyes closed? Is that just "a different way of driving"?
Am I right in being bothered by this practice?