You could try to depend on a macro to stop them (like Duke wrote).
But if the user disables macros or even just disables events, then this won't
work.
And depending on what alter means, it might not be sufficient. (Changing
font/hiding the column/hiding a row won't get caught.)
If you still want to try...
Right click on the worksheet tab that should have this behavior and select view
code. Paste this into the code window that you see:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Me.Range("C:C"), Target) Is Nothing Then
Exit Sub
Else
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
MsgBox "Please don't change column C--last change undone!"
End If
End Sub