Bueno .. ahora revisando el ejemplo otra vez .. Usas "isset()" .. Isset dice "Si está definida" (con tu ! delante lo niegas) .. Pero no mira si tiene valor o no distinto de NULL o 0 (cero) .. para eso usa empty() que mira si está definida y luego a su vez mira si tiene algún valor dicha variable ..
Código PHP:
if (empty($_POST['buscar'])){
Sigo recomendandote que uses los arrays superglobales pese que trabajes con register_globals a ON.
Un saludo,