Backup your apps or copy /system/sd/app, /system/sd/app-private, /system/sd/lost+found, /system/sd/xbin, if you have'm to some matching directories in the /sdcard fat32 partition.
Power down. Remove the old card. Insert the new , boot into recovery. Format the new card. Exit recovery to powerdown, or remove the battery.
Remove the new card.
Copy the contents of the fat32 from the old to the new, on a pc.
If you're linux based copy the ext2 or ext3 contents from one to the other.
Replace the new card and do a regular boot.
if you didn't copy the ext's then:
Copy the stuff from the matching directories (in the sdcard fat32 partition) into the directories in the ext2 or ext3 which should have been created for you at boot time.
If they were not created then create them. Move the stuff either from backup or from the matching directories which you created, into the appropriate new /system/sd ... directories-folders.
Reboot.
Your apps should be there. If they give symlink errors then reinstall by clicking on the apks from a file manager.
Here's another approach.
That's a pretty good point. Upgrading isn't a huge worry, it's just a matter of creating the partitions and copying the files over to the new card (from both partitions). Having a Linux machine available would make that process a whole lot simpler. You can get ext2/ext3 drivers for Windows, but I've had, shall we say, mixed results with that over the years... (Edit: Now that I think about it, just doing a nandroid + ext backup and restore should be fine, then all that's left is the fat32 partition, and you can just copy those files back and forth from your pc....)