Gracias a la sugerencia de don _crissti y Stéphane Chazelas solución he llegado a lo siguiente:
#!/bin/sh
lhs=':URL2'
rhs="URL $(cat temp.txt):URL2"
escaped_lhs=$(printf '%s\n' "$lhs" | sed 's:[][\/.^$*]:\\&:g')
escaped_rhs=$(printf '%s\n' "$rhs" | sed 's:[\/&]:\\&:g;$!s/$/\\/')
sed "s/.*$escaped_lhs/$escaped_rhs/" list.txt
Esto encontrará cualquier línea que termine en :URL2
y la reemplazará con:
URL http://url_new_address.com:URL2