20 Gig - Transactional replication.
As Andy said it's the snapshot that's the problem. BCPing all the data. If you can afford a small downtime on your publisher you may be better to establish the subscription with @sync_type = 'NONE' and then backup-restore to the other server (or log ship to it to minimise downtime), rename the database, truncate all the tables on your subscriber that you aren't interested in, and then kick off your @sync_type = 'NONE' subscription.
Thinking about it now you don't really have to have a downtime on your publisher. You can just let the subscription fail because there's no database there (or stop it before it does), and your transactions can build up in the distributiondb while you setup the subscriber.