fuelphp バリデーション 上書きする場合は run()の引数に書く

$val->run() 引数指定なしの場合は、$ _POSTの値が実行される

// 引数指定ない場合は、デフォルトで$ _POST入力が入る
if ($val->run())
{
    // バリデーションに成功した場合の処理
}
else
{
    // 失敗
}

// 入力配列が指定されると拡張および上書きされます
if ($val->run(array('username' => 'something')))

デフォルトの$_POST以外を使いたい配列のみ、引数に書けば大丈夫でした。

参考: Validation - クラス - FuelPHP ドキュメント