IMHO: kontrakt - это когда речь идет о договоре вообще, как сделке, отсюда вытекает самостоятельное употребление этого слова, без сочетания с какими-либо определяющими его словами, avtale - это когда имеется в виду какой-то конкретный тип договора, например, salg og kjøpsavtale, lisensavtale, и т.