La única manera de conseguir que tu explorador no almacene las páginas (como mínimo tan alegremente como lo hace) es decirle a tu servidor que envie explícitamente la señal de no guardar nada porque su caducidad es inmediata. Con los metatags y similares no tienes nada demasiado robusto así que, lo mejor, en el caso de apache, es compilar el módulo ... mmm ... no me acuerdo ahora (apache.org modules) lo compilas y le dices que como cabezera a todas las peticiones envie la señal de no guardar como cache.
Así cuando el usuario tire para atrás le mostrará esa advertencia conforme la página ha caducado.
Otra manera es que los contenidos de la web sean escupidos por un exec y que este antes de escupir compruebe login y password. Como el exec no acepta ningun argumento no se los puedes enviar por lo que las cookies seran imprescindibles aquí.
Sino, la otra opción es que llame a un script y que le envie via GET o POST los datos (id + pass), y si el script los verifica correctamente pues que le devuelva el html. Pero con esto siempre estarás escupiendo todo el html via scripts y puede ser muy tedioso.
La mejor alternativa sin duda es (yo estoy hablando de perl) utilizar algun módulo de perl embebido por lo que puedes comrpovar (supongo) fácilmente la identidad de los usuarios.
Mason es excelente (supongo, no lo he utilizado), y convierte perl en algo similar al php (
www.masonhq.com).