Why does one define $dF_p(X)=X(f \circ F)$? How does one know a $f$? Let $F: M \rightarrow N$, $M,N$ manifolds. $X$ is a derivation at $p$.
The differential of $F$ in diff. geom is 
$$dF_p: T_p M \rightarrow T_{F(p)}N$$.
The derivation at $F(p)$ is:
$$dF_p(X)=(dF_p)(X)(f)=X(f \circ F)$$
where $f \in C^{\infty}(N) \rightarrow X(f \circ F)$ and $X$ is 
Now how does one know that one can find an $f$ which gives a $\mathbb{R}$ representation from $N$?
 A: An element of $T_{F(p)}N$ is a derivation at $F(p)$. A derivation at $F(p)$ is a function $Y : C^{\infty}(N) \to \mathbf{R}$ subject to some conditions.
When we want to define $dF_p$ at a point $X \in T_pM$, we need to describe what derivation $$Y = dF_p(X) : C^{\infty}(N) \to \mathbf{R}$$ we are getting. That derivation is defined by
$$ Y(f) = X(f \circ F).$$
So $f$ isn't given to you, it's being used to describe what $Y$ is because to describe $Y$ we need to describe what it does to any $f$.

Maybe it would be helpful to look at this in coordinates. That is, take a map $F : \mathbf R^m \to \mathbf R^n$ and a point $p \in \mathbf{R}^m$ with $q = F(p) \in \mathbf{R}^n$.
The derivations at $p$ in $\mathbf{R}^m$ are the directional derivatives at $p$ and the directional derivative in the direction $u = (u^1, \dots, u^m)$ is
$$ f \mapsto \langle \nabla f(p), u \rangle = \sum_{i = 1}^m u^i \left. \frac{\partial f}{\partial x^i} \right|_p$$
That is every derivation at $p$ can be written as
$$ \sum_{i = 1}^m u^i \left. \frac{\partial}{\partial x^i} \right|_p $$
for some $(u^1,\dots,u^m) \in \mathbf{R}^m$. Think of this as a function of $f$ just as $\phi(x) = x^2$ is a function of $x$.
The quantities
$$ E_i = \left. \frac{\partial}{\partial x^i} \right|_p $$
form a basis for $T_p \mathbf{R}^m$.
For a manifold $M^m$ (i.e. $M$ is a manifold and $\dim M = m$), each point $p$ has a tangent space $T_pM = \operatorname{span}\{E_1,\dots,E_m\}$ where $E_1,\dots,E_m$ can be thought of as being like
$$ E_i = \left. \frac{\partial}{\partial x^i} \right|_p. $$
Notice that each $E_i$ takes as input, smooth functions $f : \mathbf{R}^m \to \mathbf R$ and outputs a real number. In fact, $f$ need only be defined in a neighbourhood of $p$.
You can (and should) check that if we take local coordinates $x^1,\dots,x^m$ and $y^1,\dots,y^n$ then $dF_p$ is the linear map
$$ dF_p\left( \sum_{j = 1}^m u^j \left. \frac{\partial}{\partial x^j} \right|_p \right) = \sum_{i = 1}^n v^i \left. \frac{\partial}{\partial y^j} \right|_q $$
where $v = Ju$ and $J$ is the Jacobian matrix
$$ J = \left( \frac{\partial F^i}{\partial x^j} \right). $$
A: I think your notion of tangent space/derivation is not correct.  Maybe that is where the confusion lies?  You say that $f \in C^{\infty}(N)$, but $f$ should only be defined on a neighborhood of $F(p)$.  
$dF_p(X)$ should be an element of the tangent space of $N$ at $F(p)$.  That is, it should be a derivation on the local ring $\mathcal O_{F(p)}$ at $F(p)$, which is a function $\mathcal O_{F(p)} \rightarrow \mathbb R$.   Your $f$ should be an arbitary element of $\mathcal O_{F(p)}$.  The elements of $\mathcal O_{F(p)}$ are classes of the smooth $\mathbb R$-valued functions on neighborhoods of $0$ in $\mathbb R^n$.
