Based on your comments, I would add a new table that contains the name of the "custom fields", lets call it "custom_fields" and this would be its definition
custom_fields: id name
Its model is called CustomField and it hasMany UserDetail
Your user_details table will have this structure
user_details: id user_id custom_field_id value
This model (UserDetail) belongsTo CustomField.
Your model User hasMany UserDetail.
Now, in your users form you might want to have a select with all possible CustomValues, in order to do this you previously did something like this in your controller
$customValues = $this->CustomValues->find('list');
$this->set(compact('customValues'));
So, in your view you will have something like this
echo $this->Form->input('UserDetail.custom_field_id', array('type' => 'select', 'values' => $customValues));
echo $this->Form->input('UserDetail.value')
And of course, after submitting this form you will call Model::SaveAssociated
I hope you have now the idea.