1/ A repository is a cvs server containing one or more projects. A project can be any collection of files that need updates logged / watched.
2/ No, any number of projects may reside within a repository (cvs server). For example, I run my own cvs server (repository) which contains 8 differnet projects. Some of which are web applications (websites), others are as simple as a backup of my systems (Gentoo) /etc directory.
3/ I don't think I could explain the process any clearer than the link I provided except maybe to give you an overview of the concept.
You need to think of a cvs repository as being a storage mechanism that also keeps track of any changes made to the files it stores. At any time you can revert back to older versions, you can even break off (branch) into newer projects (versions) derived from old ones.
As an example, you (a) and bob (b) have a project (foo) stored in the repository (x). If b wants to work on (foo) he downloads a copy (checks out) to his hardrive, works on it, and then uploads (checks in) it back to (x). Meanwhile you (a) have been working on a copy that you checked out (downloaded) an hour ago, and now your changes are done you upload (check in) it.
If both you (a) and bob (b) have been working on the exact same files (same code) and try to check them in at the same time (the last person) you will be notified and shown the difference between your version and bobs version. You will then have to determin any fix to the situation and check the file in.