First Approach
I think that you should make the text of required fields red, either #F00 or similar brightness, and clearly indicate what that means beforehand.
This approach is more noticeable, and harder to miss than the classic "red asterisk" approach, but is still reminiscent of it.
Another thing to keep in mind is when to let your users know a field is required. Maybe you only want users to know a field is required after they have entered it empty once. In this case, wait for a "required" field to be entered in empty, then pop the input window up again, clearly saying that the field did not have sufficient data.
Second Approach
Or, if you are feeling like an even more intuitive approach, you may find success in grouping together important and less/not important fields. For example, let's say you want the user to enter:
- Their username.
- Their password.
- Their real name.
But only the first two were important enough to be required. In this case, maybe have the users enter the required data first, and then, in a separate step, then go on to enter less important information, but this time with a simple "skip" button.
Summary
To summarize:
- Use red text:
- Possibly wait for a "failed" attempt beforehand.
- Use multiple steps/groups:
- May remove the tedium of the "red asterisk" or "red text" approach.