Y sólo deseas mantener el campo con errores? Y qué pasará con los demás? Puedes guardar todo el array $_POST en una variable de sesión, y recuperarla en el formulario si hubo errores:
Y en el formulario
Código php:
Ver original<?php
// ...
$datos = $_SESSION['datos_form'];
unset($_SESSION['datos_form']);
// ...
?>
<input type="text" name="campo"
<?php if(!empty($datos['campo'])) echo "value=\"".htmlspecialchars($datos['campo'])."\" ";?>/>
Saludos,