-u and -f together mean that the file will be copied if
- there is no existing file in the destination directory, or
- the existing file in the destination directory is older than the source file
but not if
- there is an existing file in the destination directory that's newer or the same age
Without the -f, the mere presence of the file in the destination directory will prevent the copy (and give an error message IIRC). Without the -u, any file may be overwritten, regardless of its timestamp.
The safest thing is to use -f and not -u - then even if a file has a corrupt timestamp or has been half-copied, it should still get overwritten. This is of course the slowest version, though.
If you're starting with a fresh, empty destination directory, neither of these flags makes any difference, anyway.