Ok, still pretty easy. Per usual, there are multiple ways to skin this cat. First, the easy answer,
"How can I access the two custom fields for a user in code to retrieve only user specific information?"
To extract / set custom profile information, you can use:
UserInfo.Profile.GetPropertyValue(Name)
and
UserInfo.Profile.SetPropertyValue(Name, Value)
Now all you have to do is write your modules. You can do this with one module that has two definitions: one to enter details for a parking infraction and a second for user to view/pay? their infractions and fine. Doing it this way you are really going to end up with two view modules. The benefit is it will be easier to access data to/from each of them because it's all in the same class. This should be pretty straight forward.
What I would do is write the infraction entry page first. This is pretty much a simple form that includes Vehicle Registration and/or National Identity Number. Once you have your parking infractions table, all you need is a view page for users to find theirs. This module needs some logic to retreive the current logged in user's extra profile fields. Maybe something like:
VehReg = UserInfo.Profile.GetPropertyValue("VehReg")
NatID = UserInfo.Profile.GetPropertyValue("NatID")
Then you just query the table you stored the infraction data in and look for a match on either of these two values.