原因・理由(~なので)表現は次の3つがあります。         
-아/어서
-기 때문에
-(으)니까

どう使い分けるかという質問をよく受けます。

このうち -(으)니까 だけは後続文に制限がありません。
-아/어서 と -기 때문에は 後続文に命令文や勧誘文が来るとおかしいです。

例) ○ 오늘 날씨가 추우니까  목도리 하고 가세요. (今日は寒いので、
   ×       춥기 때문에  マフラーして行きなさい)
   ×       추워서

参考書に書いてある説明はここまでです。
ここではその先のことについて述べたいと思います。

私は初級段階の頃、話すとき、オールマイティーに使える -니까 ばかり使っていたような気がします。
他の初級学習者の方においてもよく見られる現象です。
でも -니까 ばかり使っていると、意味は通じるけど、少し耳に障る不自然な韓国語という印象をぬぐえません。

例えば、次の例文
「私は忙しいので行けません。」    
   ○저는 바빠서 못 가요.      
  △저는 바쁘니까 못 가요.

下も間違いではありませんが、「私は忙しいんだよ!」という感情的な匂いがします。
上の文は「行けない」理由をいう一般的な文です。

思うに、日本語で「~て」や「~で」の形で言い換えられる理由の文は、すべて
-아/어서で表現するのがよいと思います。
上の文は「忙しくて」と言い換えられますね。

試してみると勧誘・命令文でない限り、たいてい「~て」と言い換えられます。
「高いので買えない」→「高くて買えない」

わざと感情を漂わせたい時は、-(으)니까 でもOK。
그 책을 사고 싶지만 비싸서 못 사요.  (買えない理由を述べている) 
그 책을 사고 싶지만 비싸니까 못 사요. (高いのが、より、くやしそうなニュアンス)
    


結論(私が心がけている内容です)
・会話では基本的に-아/어서 を使うように心がける。 
・後ろの文が勧誘や命令のときは 必ず –(으)니까 を使う。
・理由を上のように「~て」と言い換えられない日本文のときも –(으)니까 を使う
 たぶん、「~て」で言い換えられないのは、自分の主張が入る文章だと思います。
例)「私が間違ったのだから私が謝ります。」
      ○제가 잘못했으니까 제가 사과할게요. 
       ×잘못해서 「間違って」とは言い換えられない。

・知的な話をする時は -기 때문에
 -기 때문에 は文章語、あるいは論理的な話をする場合、フォーマルな場所などに似合う表現です。   


なお、「[名詞]なので 」と言うときに日常会話で一番よく使う表現は「名詞이라서」です。
                       
(例)日曜日なので  
                             ↓私が感じるニュアンスを独断で
1, 일요일이라서 日曜日なので(イリョイリラソ)・・・ 一番よく使う
2, 일요일이어서    日曜日で  (イリョイリオソ)・・・ 高尚ぶってる
3, 일요일이기 때문에 日曜日であるために(イリョイリギ テムネ)・・・理屈っぽい
4, 일요일이니까    日曜日だから (イリョイリニカ)・・・ くどい