A common problem with the Ultrafire lights is they the body conducts the current between the tailcap and head/driver, and the ends of the body tube are free from anodizing to do this. However, fairly often, not everything is long enough, or either the driver or tailcap assembly is screwed in too far and the body cannot make contact on the ends. If you see either the head or tailcap screwed in so far as there is no space between it and the body, that contact may be a little shy. You can bend a paperclip into a circle, and place it between the body and end to fill the gap.
Edit:
The tailswitch assembly is actually screwed inside the tailcap. The tailswitch assembly can sometimes be tightened into the tailcap further by using the two indentions you see inside the tailcap next to the spring.