How-to upload program to MCU with flashed bootloader

How is it possible to upload application in hex format to Atmega328 with alredy flashed bootloader (original Arduino Duemilanove board)?
Is it necessary to use usip/avrdude? What is command syntax? Is possible to use tools like putty?
My device sending data over RS-232 to PC each minute. Is possible that user will overwrite program by mistake in ATmega328 over RS-232?

martin159:
How is it possible to upload application in hex format to Atmega328 with alredy flashed bootloader (original Arduino Duemilanove board)?
Is it necessary to use usip/avrdude? What is command syntax? Is possible to use tools like putty?

Use avrdude. The syntax is shown if you enable verbose upload in your preferences.

martin159:
My device sending data over RS-232 to PC each minute. Is possible that user will overwrite program by mistake in ATmega328 over RS-232?

No.

/tmp/app/arduino-1.0.5/hardware/tools/avrdude -C/tmp/app/arduino-1.0.5/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/build3646094179928330495.tmp/Blink.cpp.hex:i
Usage: avrdude [options]
Options:
  -p <partno>                Required. Specify AVR device.
  -b <baudrate>              Override RS-232 baud rate.
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
  -C <config-file>           Specify location of configuration file.
  -c <programmer>            Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i <delay>                 ISP Clock Delay [in microseconds]
  -P <port>                  Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053). 
  -U <memtype>:r|w|v:<filename>[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a script.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
  -x <extended_param>        Pass <extended_param> to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y <number>                Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -?                         Display this usage.