Ravi,
The performance isn't likely anything to worry about. It's more important to have working code than hope the caller doesn't modify the original list.
If you only care about calling code not modifying your original list, you could also look at Collections.unmodifiableList (and its siblings for other collection types). That's a little more efficient - it does create a new object, but the internal structure is not copied. It is merely a wrapper that does not allow for any changes to the list.
If there is no such wrapper (e.g. for java.util.Date), copying is the safest way to go, as Jeanne said.