I am so stupid. I was using the line-Sphere intersection all along, when i should have been using the segment-sphere command.

Anyways, I build a nice little app to show you the "bug", and while posting, I realized my stupidity.
If you want the app to showcase your code, here it is. simply save it as test.c into the same folder as vec3d.c, and run it.

left click -> place first line point
right click -> place second line point
mouse wheel -> change radius

It works great, but I'm stupid... I just spent 2 hours trying to figure out why it didn't work right. maybe even longer.

Code:
#include <acknex.h>
#include <default.c>

#include "vec3d.c";


VECTOR vec1;
VECTOR vec2;
VECTOR vec3;

VECTOR temp;

LL_SPHERE sphere;
LL_LINE3D line;

STRING* toWrite = "#30";

int isIntersecting = OFF;

var radius = 100;

VECTOR center;

void draw_circle(VECTOR* pos, var radius)
{
	var angle = 0;
			vec_set(temp,vector(radius*cos(angle),radius*sin(angle),0));
		vec_add(temp,center);
	draw_line(temp,NULL,0);
	draw_line(temp,vector(255,255,255),100);
	
	while(angle <= 360)
	{
		vec_set(temp,vector(radius*cos(angle),radius*sin(angle),0));
		vec_add(temp,center);
		draw_line(temp,vector(255,255,255),100);
		angle += 10;
	}
}

void draw_info()
{
	while(1)
	{
		str_for_num(toWrite,vec1.x);
		draw_text(toWrite,20,20,vector(255,255,255));
		str_for_num(toWrite,vec1.y);
		draw_text(toWrite,20,40,vector(255,255,255));
		str_for_num(toWrite,vec1.z);
		draw_text(toWrite,20,60,vector(255,255,255));
		
		str_for_num(toWrite,vec2.x);
		draw_text(toWrite,20,80,vector(255,255,255));
		str_for_num(toWrite,vec2.y);
		draw_text(toWrite,20,100,vector(255,255,255));
		str_for_num(toWrite,vec2.z);
		draw_text(toWrite,20,120,vector(255,255,255));
		
		str_for_num(toWrite,vec3.x);
		draw_text(toWrite,20,140,vector(255,255,255));
		str_for_num(toWrite,vec3.y);
		draw_text(toWrite,20,160,vector(255,255,255));
		str_for_num(toWrite,vec3.z);
		draw_text(toWrite,20,180,vector(255,255,255));
				str_for_num(toWrite,mouse_pos.x);
		draw_text(toWrite,20,280,vector(255,255,255));
				str_for_num(toWrite,mouse_pos.y);
		draw_text(toWrite,20,300,vector(255,255,255));
		
		if(isIntersecting)
		draw_text("Intersect",20,200,vector(255,255,255));
		else
		draw_text("Don't intersect",20,200,vector(255,255,255));
		
		vec_set(temp,vec2);vec_add(temp,center);
		
		draw_line(temp,NULL,100);
		draw_line(temp,vector(255,255,255),100);
		
		vec_set(temp,vec3);vec_add(temp,center);
		draw_line(temp,vector(255,255,255),100);
		
		draw_circle(vec1,radius);
		wait(1);
	}
}


void setfirst()
{
	vec2.x = mouse_pos.x - center.x;
	vec2.y = mouse_pos.y - center.y;
}

void setsecond()
{
	vec3.x = mouse_pos.x - center.x;
	vec3.y = mouse_pos.y - center.y;
}


void main()
{
	vec_set(vec1,vector(0,0,0));
	vec_set(vec2,vector(0,0,0));
	vec_set(vec3,vector(0,0,0));
	vec_set(center,vector(screen_size.x/2,screen_size.y/2,0));
	
	mouse_mode = 4;

	on_mouse_left = setfirst;
	on_mouse_right = setsecond;


	draw_info();

	while(1)
	{
		radius += mickey.z*time_step*5;
		sphere.pos.x = vec1.x;sphere.pos.y = vec1.y;sphere.pos.z = vec1.z;
		sphere.radius = radius;
		line.from.x = vec2.x;line.from.y = vec2.y;line.from.z = vec2.z;
		line.to.x = vec3.x;line.to.y = vec3.y;line.to.z = vec3.z;
		
		isIntersecting = ll_vec3d_lineSphereIntersect(line, sphere);
		wait(1);
	}
}




~"I never let school interfere with my education"~
-Mark Twain