1) Would I issue these commands from /mnt/card/ (cd /mnt/card/)?
yes for the steps 1 an 2 for the steps 3 and 4 it doesn't matter. (And I think for steps 1 and 2 it wouldn't matter if you use /mnt/card/ext2.img instead of just ext2.img)
2) If I want to allocate 200mb to the ext2.img, would the following line be correct?
# dd if=/dev/zero of=ext2.img bs=1024 count=204800
I think it you are correct.
I think bs is in byte and count specify the number of blocks of bs size, so in this
case it would create a 1024* 204 800 byte image file. (I think the original exemple creates a 100MB file and not a 10 MB file).
Be aware that this takes some time.
3) Is it safe to move /opt and /home to this ext2.img?
For this you would need to check if there is something in opt or home (or ask in a forum where people use the sharp rom) that is required to mount the image, because if it is the case then you won't be able to mount the image after a reboot....
Perhaps you could simply uninstall some apps and reinstall them in the new mounted image. I think you will take advantage of your partition this way with no risks.
Some problems of this method are:
1) you canno't resize the file afterward
2) if the big file is corrupted you are likely to loose 200MB of data (make backup often)