I've used perforce in a production environment successfully for managing xml for years (it doesn't qualify as 'free') but is an example that proves the concept of text based version control systems for XML.
Another replier stated that text based version control is unusable for XML I believe is not entirely accurate. It all depends on what you care about. Text based versioning (including Diffs etc.) work perfectly well on XML even without understanding the structure. Text serialized XML is text after all and any text based versioning can handle that no problem. They may not produce xml-aware change structures and may be less than ideally efficient but they 'work'.
What it *doesn't* do is 'intelligent' diffs and versioning. A classic case is someone may simply load a xml file into and editor and save it, without changing any 'xml stuff' but whitespace may change and cause the file to be versioned and presumed 'different'. Does that matter ? It depends on your needs.
For our needs it doesn't matter at all. We just needed document management at a document level and as long as the files are not corrupted and we can assign unique versions and label and pull them, it works great. Now if you want to question say 'what XML element changed and by what' then a text based version control won't answer that, but you can use other (non version control) XML diff tools, pull the 2 versions and diff them. Also if you want the system to not create a new version unless the document has semantically changed it won't do that.
Now for the question of using "cvs" ... I wouldn't recommend it, its modern open source replacements are significantly better in almost every way. But it should 'work' for some definitions of 'work'
The subject has the question.
Assembling a free to near free environment for multiple authors working on multiple projects where some must be able to simultaneously edit then merge XML and illustrations, is free CVS a practical means?