If you are using Codewarrior, there is an easy solution. By including additional commands in the PRM file, you can have the linker fill all of unused ROM with 0xFF, compute a checksum by simple addition or a variety of CRC methods, and store that checksum in a ROM location(s) of your choice. So you don't have to keep track of where your code is located.
You will have to write some code to compute the checksum and compare it to the value computed and stored by the linker. I have no qualms about putting this code in the startup code file for the project.
I believe there is a technical note in the documentation that describes the whole process, but I can't point to it specifically.