Mad,
I eventually solved it by putting the following line:
ini_set('session.save_handler', 'files');
immedialtely before session_start(); in every one of my programs (i.e. it is the very first line of code).
I seem to remember concluding that the problem was being on a shared server where other applications, possibly in conjunction with a php bug, were intermittently upsetting the php configuration.
I don't know if the above code has any performance or other downsides - it should not really be necessary to have it there. Has anyone else got any info on this?
Cheers
Jack.