Me autorespondo: ya lo he resuelto. El problema era que para obtener la segunda URL hacía una consulta a una base de datos. Como tenía por seguro que sólo iba a retornar un valor, tuve el atrevimiento de hacer:
Código C#:
Ver originalresultado.Read(); //resultado es un objeto de tipo MySqlDataReader
web.Navigate(resultado.getString("columna_consultada"));
Con sólo poner un while se ha resuelto el problema:
Código C#:
Ver originalwhile (resultado.Read())
web.Navigate(resultado.getString("columna_consultada"));