cuando usás strpos deberías chequear que no sea false en tipo, porque si se llama document.doc te va a devolver 0 y se evalúa como false... igualmente eso aceptaría undocumento.exe
Te recomiendo que valides el tipo con $tipo_archivo o utilizando pathinfo para ver la extensión
Código PHP:
//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES["userfile"]["name"];
$tipo_archivo = $HTTP_POST_FILES["userfile"]["type"];
$tamano_archivo = $HTTP_POST_FILES["userfile"]["size"];
//compruebo si las características del archivo son las que deseo
if (!((pathinfo($tipo_archivo, PATHINFO_EXTENSION) == "doc" || pathinfo($tipo_archivo, PATHINFO_EXTENSION) == "pdf") && ( $tamano_archivo < 2000000)))
{
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .doc .pdf .jpeg ó .bmp<br><li>se permiten archivos de 2Mb máximo.</td></tr></table>";
?>