Don't make it difficult
I went to a coupon site one day, browsed some coupons and found one. Great! Until I go to print it. Well first I have to create an account. For what? Then I have to download this little coupon printer program thingy. Then I had to install it and get it set up on my computer. Then configure it. Then feed it lunch.... I mean come on! I only took it that far because, being in web site design, I wanted to see how far these people were going to take me. Needless to say, I never went back to that site and never finished what I was doing.
Functionality is the way that your web site provides tools that benefit your customers when using the site. It's about making things run smoothly during a complicated process. Things need to work. Common things need to be in familiar places so they are easy to find. A form need only extract the information needed from the customer. Photo galleries should load fast. Catalogs for e-commerce should be categorized and have an easy, visual flow.
Registration- Pardon the interruption
Should your site require the visitor to create an account? If it's not dependent upon whether things can get done or not, then no, it shouldn't. A site that requires registration just so they can obtain personal information will lose potential customers at the "Please register" point of a site. It is an interruption of service for your business. A "point of sale" will become a "just visiting" statistic. I fold there all the time when I deem it unnecessary. Besides all that, it's going to cost money to have this feature installed.