Está bien lo de actualizar la fecha de acceso, sólo crea una una nueva tabla llamada por ejemplo "recordatorios" con los siguientes campos:
Tabla "recordatorios":
ID - Número identificador único, sin signo y autoincrementable
Fecha - La fecha de los recordatorios
Usuario - Ya sea el ID o el nick del usuario para identificar que mensajes son nuevos para él y cuáles ya ha leído
Foro - El ID del foro donde se encuentra el mensaje
Mensaje - El ID del mensaje en sí.
Bien, debes crear un archivo que inserte en "recordatorios" los recordatorios de mensajes nuevos para el usuario que acaba de ingresar, y eliminar los restantes en caso de que haya pasado el tiempo límite.
Lo voy a explicar suponiendo que tienes un foro que a su vez tiene distintos subforos dentro de él, tal como el de esta web.
Esto es lo que tienes que hacer, lo voy a explicar en forma de código, algunas partes del código sólo traen la descripción:
<?
# * Eliminar recordatorios que sobrepasen el tiempo límite
$tiempo_limite = 86400 ; # Tiempo en segundos (24 horas = 86400 segundos) ;
$fecha_actual = time() ;
$tiempo_limite = $fecha_actual - $tiempo_limite ;
mysql_query("delete from recordatorios where fecha<'$tiempo_limite'") ;
# * Obtener la fecha de último acceso
...
$ultimo_acceso = ... ;
# * Obtener el identificador de todos los foros existentes
$consulta = mysql_query("select id from foros order by id asc") ;
while($datos = mysql_fetch_assoc($consulta)) {
# * Hacer una subconsulta para obtener el identificador de los mensajes correspondientes a cada foro y que tengan una fecha mayor a la de ultimo acceso del usuario
$consulta_2 = mysql_query("select id from mensajes where foro='$datos[id]' and fecha>'$ultimo_acceso' order by fecha desc limit 10") ; # Limite de 10 que será el máximo de mensajes recordados
while($datos_2 = mysql_fetch_assoc($consulta_2)) {
mysql_query("insert into recordatorios values ('','$fecha_actual','$id_usuario','$datos[id]','$datos_2[id]') ;
}
mysql_free_result($consulta_2) ;
}
mysql_free_result($consulta) ;
# * Una vez creados los recordatorios puedes actualizar la fecha de ultimo acceso del usuario
mysql_query("update usuarios set ultimo_acceso='$fecha_actual' where id='$id_usuario'") ;
?>
Este archivo lo insertas en todas las páginas del foro, lo puedes hacer a través de include() o require().
Ahora falta marcar los mensajes nuevos, para esto haz una simple consulta hacia la tabla "recordatorios" buscando los recordatorios que pertenezcan al usuario, al foro y al mensaje.
Espero que esto te de una idea de lo que tienes que hacer, todavía falta poner que además de recordarte los mensajes nuevos, también te recuerde todos aquéllos mensajes que han recibido nuevas respuestas.