es gibt keinen Unterschied - zumindest mir nicht bekannt.
Es gibt unterschiedliche Formen solcher Anpassungszeitpunkte wo quasi modifikationsfrei eigenes Coding hinterlegt werden kann.
Diese sind: UserExit, BTE und Badi.
Ein Customer-Exit hat eine definierte Schnittstelle (Funktionsbaustein).
Ein Userexit ist eine Unterroutine, in der auf alle Daten des Programms lesend und schreibend zugegriffen werden kann.