You have a chance to offer a unique product - none of paid for Partition Managers offer such feature. I have to assure you - its very sensible issue, given low reliability of today's large drives, and their limited lifespan resource. I opted several times to leave an unused empty partition in front of my 2Tb large data partition with movies, since copying senselessly this data closer to drive start would decrease service life of the drive (given my experience with other similar drives). This is not only about resource load, but also about associated costs and consequences. It's not theory - it's unfortunate reality.
Moving a partition's data is a one-time operation (you only read and write each sector once). I guess I don't really understand the risk here. If disks are really that delicate, then we have a much larger problem than that posed by the occational partition resizing operation.
Besides, when you tell "to copy is safe", you simply mean, MS code will do very same job as you described above instead of your program. May be its more reliable because someone else extensively tested the code and can be named responsible for failure, unless you can make it of similar stability.
No, I mean that copying data is safe because it doesn't involve recomputing all the offsets, etc. If you ask any developer of partitioning software, they'll tell you the same. 'Moving' a partition is computationally trivial, and thus 'safe'. Resizing a partition is a very complicated and dangerous operation. Any programming error can render entire filesystems unusable, and all the data lost. Writing code to resize filesystems from both the front and the back involves a lot of extra code, and thus increases the likelihood of bugs (and data loss). Resizing filesystems from the end is typically simpler, and involves less of the "wear and tear" on the drive that you're worried about (recalculating all the metadata). If the partition also has to be moved, yes, that's addidional time and I/O, but it's a simple operation.