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>"; 
?>