I encountered this as well.
To preserve my bootloader code, I did this...
Program application code (clicking on Debug in CodeWarrior) as normal. This first time, it will erase all of the flash as you mentioned. When in the True-Time Simulator window, click 'MultilinkCyclonePro' at the top of the window and then click 'AdvancedProgramming/Debug options...' from the list shown. In the section that states 'Preserve this memory range' type in the range that you want to preserve the next time you program your application (E000 to FFFF). Then select 'Done' and close the True-Time Simulator.
Next, open your bootloader and program it as normal.
Then, program the application code again. It should now skip the range you have selected to preserve.
You should only have to do this once. The range should stay set on subsequent programmings of your application. It appears to save the options in an initialization file in my project called 'BDM_P&E_Multilink_CyclonePro.ini'.
Rob