You can configure MPLAB IDE to store this checksum in the User ID locations when you program the part.
Just check the 'Use Unprotected Checksum' checkbox in the 'User ID Memory' dialog box in MPLAB IDE.
Please note however, that when you select this option, the checksum is not automatically saved in the actual hex file. This is a very important thing to understand. If or when you are ready to release your "executable" hex file to the Configuration Control department, you must use the 'Export' menu item under MPLAB IDE's 'File' menu in order to ensure that the checksum (to be stored in the User ID memory area) is saved to the Hex file.
Don't be fooled by what you see "on the surface" in MPLAB IDE. Even though the checksum does not exist in the hex file, below the surface MPLAB IDE is smart enough to re-calculate the checksum and store it in its User ID buffer when you 'Import' the previously created hex file (when the 'Use Unprotected Checksum' checkbox in the 'User ID Memory' dialog box is checked). This may look like on the surface that the checksum is stored in the hex file, but you must explicitly store the checksum in the hex file through the 'Export' function in MPLAB IDE.
If you want to use the User ID memory locations to store the checksum, for portability reasons, it should be embedded and stored in the hex file and the 'Export' function will do this as long as the 'Use Unprotected Checksum' checkbox in the 'User ID Memory' dialog box is checked prior to exporting.
If this does not make sense, just perform some simple experiments and what I'm describing here should become very clear to you.
Also, please note that MPLAB IDE in conjunction with the MPLAB ICD 2 currently physically stores the User ID checksum in the PIC in this fashion:
If the unprotected checksum in the 'User ID Memory' dialog box is: A1050000
The raw User ID hex bytes stored in the PIC will be like this: 0A 01 00 05 00 00 00 00