Você pode especificar um arquivo rc para que csh seja invocado após os usuais (ou seja, /etc/csh.{chsrc,login} e $HOME/{.cshrc,.login} ) com o sinalizador -m . Você poderia manter toda a configuração compartilhada em .cshrc e mover as coisas específicas do projeto para seus próprios arquivos rc, e apenas iniciar uma nova sessão csh dentro de sua existente sempre que quiser trabalhar em seu projeto da seguinte forma:
exec csh -m .cshrc.project1
Isso tem a vantagem adicional de que as variáveis específicas do projeto não atrapalham durante o uso regular do shell. A desvantagem é que você precisará fazer isso em todas as novas janelas de terminal. Quanta dor isso depende do seu fluxo de trabalho.