"데려다 주다"
-다 주다 is a shortening of -다가 주다, or more generally -다가 -다.
It is used when there are two distinct actions involved.
We can compare it with the more common -어/아 주다 you mentioned.
* -어/아 주다 (-어/아 -다 more generally - i.e, verbs other than 주다 can be used)
The two verbs connected closely, almost like a single word.
Usually it is a single action with some added connotation.
노래를 불러 주다: sing (someone) a song. 주다 just adds the sense of "for someone".
돈을 빌려 주다: loan someone money. (same - single action "loan")
나무를 해 놓다: gather firewood (놓다 adds the sense of "ready for use later").
* (-어/아)다가 주다 (-다가 -다 more generally)
The two verbs are more distinct, so -어/아 -다 is not appropriate.
노래를 불러다(가) 주다 bad expression! There can't be two actions.
돈을 빌려다(가) 주다: get a loan somewhere, and give the money (to someone).
나무를 해다(가) 놓다: gather firewood and get it ready.
Sometimes -아/어 주다 and -다(가) 주다 are not that distinct from each other (나무를 해...) and may be interchangeable. In other cases they are different enough (돈을 빌려..) to change the meaning entirely.
In the case of 데려다 주다, the two verbs are not really distinct actions so it 데려 주다 seems alright too. But for whatever reason, 데려다 주다 became the prevalent expression for it and 데려 주다 is almost never used except in some regional dialects.
Lastly, there are a few usages of -다 connective to mean different things as well, so one should not think this -다(가) form is the only one.