大体の人は条件として使っていると思います。
例えば、
フラグ変数 X = たって無い;// グローバルな変数
A処理();
if( X == 立ってる) B処理();
C処理();
みたいな時に、Aの処理の中である条件が整った時だけフラグ変数をセットします。
Bの処理でフラグが立っていれば実行という流れになります。
フラグ変数自体はboolだろうが、intだろうが、自分で定義したenumだろうが何でもOKです。
わかり易い物を使います。
複数条件をフラグにしたい場合は、byteのそれぞれのビットに条件を割り当てて使ったりもします。
ただ上の例だと、わざわざフラグを使わなくても、A処理の戻り値で判断出来そうです。
安易にフラグを乱立させるとスパゲッティーなプログラムに成りがちなので
本当にフラグが必要あるかは、よく考えてから使ってください。