El problema es que isset verifica si hay valor en una variable aunque este vacia, porque un string vacio es un valor tambien.
La mejor forma para verificar un campo que no este vacio es con:
Código PHP:
$password = trim($_POST["password"]);
if(!empty($password){
//codigo que ejecutara si no esta vacio el password
}
El
trim() es con el propósito de borrar espacios que pueden estar antes o despues de un texto. El usuario puede que ingrese en el texto un espacio y eso el empty va a interpretar como que no esta vacio por lo tanto el trim elimina eso.