If you are using the edit/merge/commit paradigm (which you don't have to w/ Subversion, btw), then there is really no such thing as a person "checking out" a file.
With edit/merge no files are locked, and you are to assume that every file is checked out (unlocked) to every user.
Developers pull down the whole baseline (or at least the portion they want to build), and they just edit whatever they want when the mood strikes them. When they want to check their changes back in, that's where "merge" comes in.
At first blush you, as a VSS user, might think a check-in of a file could "wipe out" changes made to that file since you checked it out. I didn't understand how that could work initially either. The trick here is that SVN can tell when someone else checked in a version of that file since you checked it out, and thus it needs to be merged rather than simply replaced. It is smarter than VSS. :-)
The theory is that it shouldn't happen much, and in the long run you will spend less time dealing with conflicting edits than you would spend trying to deal with files someone else has locked. A quick back-of-the napkin calculation I did once showed that is probably correct where I work, but YMMV.
Update: For your procedure where you try to protect developers from forgetting to check in changes, that probably isn't going to work anymore. You could try to root around in every developer's working directories and look for differences, but I think we both agree that isn't feasible.
It is correct that the locking model provides a way for developers to declare their intention to modify a file to the central repository, and edit/merge does not. Tools built for one approach often just flat out make no sense for the other. This is one of those cases.
My suggestion to you as toolmeister would be to try out a small (or toy) project with SVN to acquaint yourself with the different method of working. Once you understand that, you ought to be able to wrap your head around it.