Creating a firmware updater program

We are currently developing a project. Currently all ATMEGA328s' have been programmed using the Arduino IDE. Is there any way to create a software that can load a new sketch into the ATMEGA328 by just supplying the .h or .hex file?

We would like to send regular firmware updates to users without telling them to download the IDE and sending them the original sketch.

XLoader. The user still needs to connect the Arduino to a PC though.

MartynC: XLoader. The user still needs to connect the Arduino to a PC though.

Thanks for the reply! I think we can do it via those serial-to-USB converters. We are planning to add an FTDI chip in the design as well.