I can't remember how much I wrote on the subject, but recently I needed to take some code 'offline' whilst I developed at my grandparents, and later push my changes back into the repository.
In real life you would more than likely just commit one large .diff (depending on concurrent development of course), but due to an 'experiment' I am performing, I needed finer-grain revisions in my repository.
What I had done in order to develop offline was import the last checkout into a local RCS repository. Then, a perl script was used to insert the changes from that back into the remote CVS repository when I got back.
What I really needed was darcs it seems. In darcs, there's no concept of a working directory vs. a repository. A working directory is a repository: a copy of the repository you are 'checking out' of. So, using darcs, I would have had the full power of the version control system even when I was offline.