I followed the ExtremeTech guide to upgrading a MacBook Pro internal hard drive, and it went smoothly. (The hard-drive retaining mechanism has changed since that article, however. There is now a hold-down lever on the right side of the drive, held in place by two screws.)
My Macbook Pro is over a year old, so voiding my warranty was not an issue.
The new drive I chose (at Best Buy, where I got some excellent product-choice input) was a 2.5" 500GB Seagate ``Momentus'' 7200 rpm, and the old 200GB drive was placed in a RocketFish external enclosure. The RocketFish enclosure is especially nice, in my opinion, and I will love the Seagate drive if it lasts a long time. Already I can see that it is quieter and a bit faster than the original drive. After booting the Mac OS X Snow Leopard disk and ``erasing'' the new drive (to format it), I was given the opportunity to load all my apps, user directories, and settings from the external drive containing my old system. This made the upgrade extremely painless, and I can't thank the responsible Apple engineer enough for working that out so well.
One surprise, however, was that my Xcode installation did not get copied over. (In contrast, all the MacPort stuff in /opt/local was copied.) I discovered this when I noted make was missing (which should be in /usr/bin). Thus, Xcode had to be reinstalled from its .dmg file, unlike everything else.