Suppose we have a smooth* manifold $M$. I like the following construction of $T^\star_pM$ (which I hope is right -- corrections gratefully received):
Construct the sheaf of smooth* maps $M\supset U\to \mathbb{R}$ where $U$ is open in the topology on $M$.
Consider the stalk at $p\in M$. It has a maximal ideal $J$ of germs whose value at $p$ is zero.
Then $J/J^2$ is by definition $T^\star_pM$.
[* Previously "topological" and "continuous" respectively; thanks to Jack Lee for the correction.]
Intuitively, I picture $T^\star_pM$ as containing infinitesimal, flat bits of gradient at $p$ modulo addition of a constant. These seem like perfect things on which to evaluate a tangent vector at $p$.
My questions:
Are there any errors in my presentation of the construction above? It's adapted from Arapura, Algebraic Geometry over the Complex Numbers, p.37 and thereabouts, but something may have got lost in translation between page and brain.
Is there a way to "turn the arrows around" and get $T_pM$ essentially for free?
Since $T_pM$ is just the dual of $T^\star_pM$, I really don't feel like we should need a new concept (e.g. derivations) to define it, but perhaps I'm asking too much. One thing that worries me is the sheaf of maps $M\supseteq U\to \mathbb{R}$ is a sheaf of $\mathbb{R}$-algebras whereas I can't see what the maps $\mathbb{R}\supseteq U\to M$ would give us beyond a mere sheaf of sets.
If you do this construction with continuous functions (as opposed to smooth or analytic ones), then $J/J^2$ is zero at every point. To see why, suppose $f$ is a continuous function that vanishes at $p$. Let $f_+$ and $f_-$ be the positive and negative parts of $f$, defined by $$ f_+ = \max(f,0), \qquad f_- = - \min(f,0), $$ and let $g = \sqrt{f_+}$ and $h = \sqrt{f_-}$. Then $f = g^2 - h^2 \in J^2$.
EDIT: Here's what I can say about your question, using your revised construction with smooth functions instead of continuous ones.
Mainly, the answer depends on exactly what you mean by "essentially for free." Once you've defined $T_p^*M$ in the way you did, by far the cheapest way to define $T_pM$ is simply as the dual space: $T_pM = (T_p^*M)^*$.
Here's an alternative definition, more in the spirit of your definition of $T_p^*M$. Let $\mathscr R$ be the sheaf of real-valued functions on $\mathbb R$, and let $\mathscr J$ be the ideal of germs at $0$ that vanish at $0$. Let $\mathscr C$ be the set of all smooth curves $\gamma\colon I\to M$ satisfying $\gamma(0)=p$, where $I$ is some open interval containing $0$. Put an equivalence relation on $\mathscr C$ by saying that $\gamma_1\sim \gamma_2$ if $f\circ \gamma_1 - f\circ\gamma_2\in \mathscr J^2$ for every $f\in \mathscr J$. The tangent space $T_pM$ is the set of equivalence classes.
But this doesn't provide a vector space structure on $T_pM$, so probably the definition by duality is a better place to start. Then you can show that every smooth curve $\gamma$ passing through $p$ at time $0$ defines an element of $T_pM$ by letting $\gamma$ acting on an equivalence class $[f]$ by $\gamma([f]) = (f\circ\gamma)'(0)$.