Profile: extending user account information
The profile module lets your users share information about themselves. You set up forms for them to fill in. Users tell about themselves by filling in your forms on the edit tab of their "My Account" page. And what each user tells will be visible to the rest of the users on your site, to the extent you choose when you design the forms.
You can enable the profile module on the modules page (Administer >> Site Building >> Modules in D5).
When you set up the forms for user profiles (at Administer >> User Management >> Profiles), you can define custom fields (for example, for name, age, and country). To do this, you can make use of fields of the following types:
- single-line textfield
Example: You want to ask your user's name - multi-line textfield
Example: You want to ask an open-ended question: "What would you most like to do to make this a better community?" - checkbox
Example: You want to say, "Please tick this box if you've ever been to Brazil." - list selection
Example: You want to ask, "Which of these colors do you most prefer--red, blue or green?" - freeform list
Example: You want to ask your user for a list--"What languages do you speak?" - URL
Example: You want to ask, "What is the address of your personal website?" - date
Example: You want to ask, "When were you born?"
You can have as many fields as you want, using any of these types as many times as you want. And you can put each field into the order you want by specifying its "weight."
Each time you add a field, you are asked to specify its "category." This allows you to divide each user's profile into more than one section. For example, you might divide the profile into two sections, one on "Community interests," the other on "Professional skills." So as you define each field, you assign it to one of these two categories. Drupal will then typically display each user's profile page with two separate sections--one for "Community interests," another for "Professional skills"--each with its own set of information, derived from the fields you have defined and your user has filled in.
You can mark a field as being required ("The user must enter a value"). And you can specify that when new users register, a field be shown for them to fill in.
If both the profile module and the menu module are enabled, from the Menus page (Administer >> Site Building >> Menus) you can enable the item User list within the Navigation Menu. This will take people to a page where they can see a list of your users. A person who has permission can click on the name of any user in the list to view that user's profile.
The option to show this menu item may be disabled by default, but you can enable it. You can also rename "User list" to whatever you wish as well as move the menu item to whatever menu you like (e.g. Primary Links.)
On the permissions page (Administer >> User Management >> Access control) you can decide who is normally allowed to view the user profiles. (You'll find the permissions for profiles under "user module.") In any case, the profiles are always accessible to your site administrators.
Contributed modules can also deploy the fields in user profiles to do much more with them. Such modules, for example, can help community-based sites identify and organize users through their profile fields.

Some profile tips
To get custom profile values in code:
global $user;$profile = profile_load_profile($user);
$custom1 = $user->profile_custom1
To save an array of form data back into the profile:
profile_save_profile($record, $user, $category, $register = FALSE);Snippets for customising the user profile
I think a link from here to the Customising the user profile layout page will be helpful.
http://drupal.org/node/35728