PHP 109 107 bytes
<?for($g=1e4;--$g;$l=$y/$g+abs($y=$x>1?1-1/$x:$x-1)*$l)$e=1+$e/$g*$x.=fgets(STDIN);echo"$e ",$x>0?$l:ERROR;
is a fairly straight-forward calculation. I use a nested form of the sum of inverse factorials, which not only increases the convergence rate, but also allows for exponentiation at the same time:

is slightly more complicated. All convergent series seem to work for
or
, but not both (Newton's iteration does not have this limitation, but requires the calculation of
each step). This isn't really a problem, though, given the log identity:

This means that if, for example, the iteration you're using only works on
and
, you can use the multiplicative inverse of
and negate the result. Because I was using a nested identity for
, I also chose to use a nested identity for
:
where 
Or equivalently, as demonstrated by Paul Walls' implementation:

I define the
case as
(which is necessarily negative), using the absolute value for the inner product, and then allowing a bare
value in the fraction to correct the sign.
Sample I/O:
$ echo 2 | php exp_ln.php
7.3890560989307 0.69314718055995
$ echo 0.25 | php exp_ln.php
1.2840254166877 -1.3862943611199
$ echo 2.718281828 | php exp_ln.php
15.154262234523 0.99999999983113
$ echo -0.1 | php exp_ln.php
0.90483741803596 ERROR
Perl 95 93 bytes
$e=1-$e/$_*($x.=<>),$l=$y/$_+$l*abs($y=$x>1?1/$x-1:1-$x)for-1e4..-1;print"$e ",$x>0?$l:ERROR;
Nearly identical to the PHP solution above with a few negated terms, to allow iteration from -1e4..-1.
Both 2 byte improvements due to Paul Walls.
2**(x*1.442695)for example seems a bit too easy. – primo Nov 25 '12 at 18:04product([2]*3)is ok. I guess I should rule out "magic constants" in the case of1.442695. – beary605 Nov 25 '12 at 18:35xbecomes too large or too small. – A. R. S. Nov 26 '12 at 0:08