Its easier to transfer to an external drive if your not comfortable with installation of a new drive. Transfer to a USB external drive will be slower than it would be if you installed a new internal SATA drive.
Better still would be to get a NAS server instead of a simple external drive. Connect it to the network and share your media with all your computers. Assuming you have more than one device that'll benefit from this. If not, it's still a nice solution for future expansion.
The most important question is are you using it for backup or for active use? External for backup, but if you're frequently accessing the data, I'd go with internal. Of course the external you wont have to take apart your computer to install, but USB is definitely slower than the IDE or SATA bus. External because you can use it to backup multiple systems, and it can be easily unplugged when you're done in case everything gets fried by a power surge or what have you.
I depends a little on what you really are doing when you say, "to transfer data
from old hard drive to a bigger internal hardrive ....". If you are trying to make a backup copy for storage, an external drive makes some sense.
However, one of the most common scenarios is someone who wants to buy a much bigger hard drive, copy absolutely everything to it from the old drive, and then use the new one as a complete replacement for the old one so that you have a lot more space to use. Doing this with "copy" is really difficult because so much critical operating system info is hidden. But hard drive manufacturers know this and want to make it super simple for you to buy their big drives and migrate to them, so they give you free utilities to do it!
I know Seagate and WD both do this, and I believe several others do, too. Seagate's package is called Disk Wizard. They also run Maxtor and have a version called MaxBlast. WD has Acronis True Image WD Edition. If you buy a Full Retail version of a drive from one of them, it usually comes with a CD of tools that includes these. If you buy a bare drive, just go the manufacturer's Support website and look for Installation tools, then download and install what you need for free. The thing to remember is that each company tends to restrict the use of their version to making copies TO their own disks only - they don't care what disk you had before. They only want to help you set up a disk you buy from them.
To migrate from an older disk to a new larger disk that becomes your bootable C: drive really is best described as cloning. The copy on the new drive absolutely MUST have ALL of your old drive's info and the new drive must be bootable. The software tools help you do all this and give you some choices, like whether ALL of the space on the new drive should be used in one huge volume, or whether instead you want to set up separate Partitions for more drives.They'll do the cloning job for you. When they finish you have to tell your system to start using the new drive as the boot drive. This can be done in the BIOS Setup screens. But I prefer to shut down and change around the data cables connecting drives so that the new new one is connected to the mobo port that used to host the old drive. I also just disconnect the old drive and leave it untouched as a perfect backup from before this whole change was started. In the rare event you have a problem with the upgraded system, just changing back to the old drive will get you going again, although NOT with the most recent data since the change. Once I'm satisfied I don't need the old drive, I usually delete all its Partitions and start as if it were a blank new drive useful for data or something.
If this is your task - replacing an old drive with a much larger one - you surely want to end up with the new boot drive mounted internally. So do that from the start - there is no need to do a temporary external mounting first. But if your task is to create a backup system, an external drive that can be disconnected and isolated from your system is better. In fact, taking it to an offsite storage location should be part of your backup plans.