It's actually up to you and what you need. If your temporary file needs to be used by several servers, then you indeed must use eZClusterFileHandler API.
If not, I'd better chosse the eZSys::varDirectory() approach you mention :). Don't forget to delete your temp file once you don't need it anymore !