外部zipコマンドを用い,copy()関数の代わりにrename()を使うことでコースファイルを含めて2GBを越えるコースのバックアップも不可能では無いと考えていますが,どうやらリストアで失敗するようです.
http://moodle.org/mod/forum/discuss.php?d=61847#p508116
fs_moodleでは指定したタイプのファイル(サイズ,ファイル名:正規表現OK,拡張子)をzip書庫化しない機能を搭載することで定時バックアップを失敗させない仕組みを実装しましたが...
新しいコースに既存のコースを複製する際には,バックアップしてリストアする時はコースファイルを含めずに手動でバックアップを取り,リストア後にコースファイルをコピーするといったテクニックが必要です.でも,この手はMoodle2.0では使えないですね(独自のファイルシステムを用いるため).
Moodle2.0で,2GBを超えるファイルを取り扱えるように何らかの工夫が施されれば良いのですが.たとえばcopy(), filesize()は用いず,独自のコマンド(OS標準のコマンドをsystem()で呼び出すなど)を用意してくれるなど.
#PHPに「このファイルは2GBを超えているから正常にコピーができない,ファイルサイズを取得できない,fread()なども無理」ということを教えてくれる関数を設けて貰うか,intの束縛から解放される拡張が行われないと,もう無理です.