You can do this, but it takes planning. You first have to lock down the views, so the users can't simply create a view and take it into datasheet mode and change the data. Next, you'll want to customize the content type for the list. After you've locked down the permissions to views and deletion(if required), then make custom forms and only expose these columns during different phases of entry.
You would also want to consider locking the form down in a document library as well. So the URL isn't simply copied and pasted from an email or something along those lines. Users will subvert the system if you let them! You should have a look at my blog post about locking down views for more info about page security. Ping me if you need more advice.