2 cosas:
- Estabas haciendo mal la comprobacion de strpos(). Las posiciones empiezan desde 0, y 0 en un if se evalua igual que false. Si jpeg empezaba en la posicion 0, el if se evaluaba a false y no entraba en el if. En el manual
www.php.net/strpos veras el warning.
- Existen distintos MIME types para imagenes jpeg, IE envia uno y mozilla otro. Si estas generando $extension desde el MIME type enviado por el navegador, es normal que $extension muestre distintos valores. Haz un echo de $extension antes del if, con distintos valores la condicion funciona distinto.