¿Se puede usar una clausula WHERE dentro de un INSERT? ¿Porque no verificas el valor de "$variable2" antes de hacer la inserción? Yo haría así:
Código PHP:
$valores = array("val1","val2","val3");
...
if (in_array($variable2, $valores)) {
$result = mysql_query("insert into tabla (campo1,campo2,campo3,campo4) values ('$variable1','$variable2', '$variable3','$variable4')", $link);
}
Saludos