20GB is a decent chunk of data, any way to identify data that changed over the past 24 hours and just send that? How about using replication?
Otherwise you could use SSIS to dump all of the data from point A to point B and schedule every night. Not sure what your performance would be, but there could be a big impact on anyone using the data.
Hth
Rob