The usual reason for this is because either the feather setting (if it is available for a particular tool) was not set to zero, or the anti-alias box was inadvertently checked.
Also, the "Quick Selection" tool has an "Autoenhance" option. If it is turned ON, you will get nicer hard edged selections, whereas, if it is turned OFF, you will get soft edged selections similar to what anti-aliasing or feathering would give you.
Finally, be sure that you are not doing any size scaling (either of the real object, or the selection) because doing so will then use an interpolation method that (more or less) will depend on what you set for the interpolation method preference in Edit/prefs/general. If that was set to anything but "Nearest Neighbor", you will get edges of varying degrees of softness.
Do any of the above situations / explanations sound like the problem you are experiencing?
Cheers,
Tom M
PS - BTW, the "more or less" aside in the 3rd paragraph was prompted by a long discussion we had on this forum a year or so ago about what actually controls the interpolation method, as there are several places where this can be set.
PS #2 - Also, FYI, there have been several interesting previous threads on partially selected pixels. Some of these (eg, "Getting rid of partially transparent pixels") may be of interest to you. To find these other discussions, just Google {edge pixels partially selected site
hotoshopgurus.com}.