We used to do data transfer between servers using exp/imp for mis purpose.
but started to take too long as data went on increasing.
so we did following.

1) on source db create a flat file with comma seperated data for tables which you want.
2) ftp file to target db
3) map a external table on that flat file
4) pull data from that external table to required table .
5) or if you have partition table then just pull data in temp table in 4th stage and do exchange partition.

you need script for this. its a bit head cracking job but once done it works smoothly...