lo que pasa es que la consulta buscar la oracion completa (osea $buscar), no sus partes dentro de la columna tag.
tendrias que separar los tags y buscarlos por separado.
Prueba con este codigo, que te genera en $Sql la consulta con las tags (separados por espacios de $buscar) por separado.
Código PHP:
<?
$Tags = explode(" ",$buscar);
$Sql = "SELECT * FROM busqueda WHERE ";
$x = count($Tags);
for($i=0;$i<$x;$i++){
$Sql.= " tag LIKE '%".$Tags[$i]."%'";
$Sql.= $i < ($x-1) ? " OR " : "";
}
//aca iria el query y el listado.
?>
Yo te aconsejo que agreges un ID y un DISTINCT para evitar que se repitan los resultados.
Saludos.