I disagree although all points of view are OK. I would say don't use strncpy() by default, it will get you in trouble or adds un-necessary bound checks if you know what you are doing or if you don't it will sometimes leave you with a string that is not properly terminated by a '\0'
You need to use strncpy only when it is useful, not as a replacement for not overflowing your char array.
There are strlcpy() and strlcat() functions to copy and concatenate strings respectively that are designed to be safer, more consistent, and less error prone replacements for strncpy() and strncat(). They add a bit of error checking cost all the time that is safe but unecessary if you know want you do...