For splines, does the curvature always has to be set to zero at end points or could we set it to some other values as well?
You could set the curvature to be anything else because it would still pin down some degrees of freedom. Though I don't think you would be able to call the curve "natural" anymore.
@sjip Yep, @jkalapos is right. You're free to specify any degrees of freedom you like, as long as those constraints uniquely determine the curve. If the constraints are linear in the coefficients of the polynomials (as in the case of a natural spline), then you simply need to make sure that you have a full set of linearly independent constraints. For instance, you could easily exchange the zero curvature condition at endpoints with a zero 1st derivative condition, sometimes called "zero Neumann" boundary conditions. The particular name of the spline ("natural" and so forth) is not particularly important---remember Feynman's story about how names are not as important as meanings! :-)