HTML5/Flash uploader can add watermarks on images before the upload. It supports multiple settings - add image or text, change size, position, tiled or single watermark, etc. You can either change a watermark dynamically (as in this demo) or statically, during initialization.
See the updateWatermarkPreview
function to see how you can configure the watermark.
Old browsers will load Flash uploader which supports watermarking, however has some limitations. For example, it cannot apply tiled watermarks or rotate lines.
Apps\Watermarks
folder of the Upload Suite 8 SDK.