All newer HDs should support the ATA secure erase or even enhanced secure erase command. This will force the HD's firmware to write some random(?) patterns to the disk. AFAIK this is the only way to overwrite reallocated sectors.
HDPARM could be used to issue the necessary commands to the HD controller.
I suggest the following chain: use usual dban tools to overwrite disk then invoke smartctl to find out whether there are reallocated sectors. Depending on the result suggest the user to run HD's secure erase feature.